gpg: Avoid infinite loop in uncompressing garbled packets.
authorWerner Koch <wk@gnupg.org>
Fri, 20 Jun 2014 08:39:26 +0000 (10:39 +0200)
committerWerner Koch <wk@gnupg.org>
Fri, 20 Jun 2014 18:24:52 +0000 (20:24 +0200)
commit014b2103fcb12f261135e3954f26e9e07b39e342
tree8ca76b40149b2a33bb7a63af18cac8d12c49b246
parent52b96ef6b81951ddacf146a74e88e5512efd03a0
gpg: Avoid infinite loop in uncompressing garbled packets.

* g10/compress.c (do_uncompress): Limit the number of extra FF bytes.
--

A packet like (a3 01 5b ff) leads to an infinite loop.  Using
--max-output won't help if it is a partial packet.  This patch
actually fixes a regression introduced on 1999-05-31 (c34c6769).
Actually it would be sufficient to stuff just one extra 0xff byte.
Given that this problem popped up only after 15 years, I feel safer to
allow for a very few FF bytes.

Thanks to Olivier Levillain and Florian Maury for their detailed
report.
g10/compress.c