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:23:19 +0000 (20:23 +0200)
commit11fdfcf82bd8d2b5bc38292a29876e10770f4b0a
treeb482c72fc1be1cfe04fc6affe4c312161bae4b98
parent23191d7851eae2217ecdac6484349849a24fd94a
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