gpg: Minor robustness fix.

* g10/parse-packet.c (mpi_read_detect_0_removal): Protect agains
failed gcry_mpi_scan.
--

Fixes-commit: 3fcef73714
This commit is contained in:
Werner Koch 2022-05-05 14:02:02 +02:00
parent 06e82e997a
commit 36a5509e11
No known key found for this signature in database
GPG Key ID: E3FDFF218E45B72B
1 changed files with 9 additions and 6 deletions

View File

@ -252,13 +252,16 @@ mpi_read_detect_0_removal (iobuf_t inp, unsigned int *ret_nread, int secure,
a = NULL;
/* Possibly, it has leading zeros. */
nbits1 = gcry_mpi_get_nbits (a);
if (nbits > nbits1)
if (a)
{
*r_csum_tweak -= (nbits >> 8);
*r_csum_tweak -= (nbits & 0xff);
*r_csum_tweak += (nbits1 >> 8);
*r_csum_tweak += (nbits1 & 0xff);
nbits1 = gcry_mpi_get_nbits (a);
if (nbits > nbits1)
{
*r_csum_tweak -= (nbits >> 8);
*r_csum_tweak -= (nbits & 0xff);
*r_csum_tweak += (nbits1 >> 8);
*r_csum_tweak += (nbits1 & 0xff);
}
}
*ret_nread = nread;