mirror of git://git.gnupg.org/gnupg.git
g10: Fix undefined behavior when EOF in parsing packet for S2K.
* g10/parse-packet.c (parse_symkeyenc): Use iobuf_get_noeof.
(parse_key): Likewise.
--
Cherry picked from master commit:
1b309d9f61
When EOF comes at parsing s2k.count, it is possible the value will
be (unsigned long)-1. Then, the result of S2K_DECODE_COUNT will be
undefined. This patch fixes undefined behavior.
Reported-by: Philippe Antoine
GnuPG-bug-id: 4093
Signed-off-by: NIIBE Yutaka <gniibe@fsij.org>
This commit is contained in:
parent
f1c0d9bb65
commit
822c633845
|
@ -1171,7 +1171,7 @@ parse_symkeyenc (IOBUF inp, int pkttype, unsigned long pktlen,
|
|||
}
|
||||
if (s2kmode == 3)
|
||||
{
|
||||
k->s2k.count = iobuf_get (inp);
|
||||
k->s2k.count = iobuf_get_noeof (inp);
|
||||
pktlen--;
|
||||
}
|
||||
k->seskeylen = seskeylen;
|
||||
|
@ -2489,7 +2489,7 @@ parse_key (IOBUF inp, int pkttype, unsigned long pktlen,
|
|||
err = gpg_error (GPG_ERR_INV_PACKET);
|
||||
goto leave;
|
||||
}
|
||||
ski->s2k.count = iobuf_get (inp);
|
||||
ski->s2k.count = iobuf_get_noeof (inp);
|
||||
pktlen--;
|
||||
if (list_mode)
|
||||
es_fprintf (listfp, "\tprotect count: %lu (%lu)\n",
|
||||
|
|
Loading…
Reference in New Issue