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 08:41:38 +0000 (10:41 +0200)
commitd6ca407a27877174c10adfae9dc601bea996cf27
treef48dff88dc5a3a75e5a95a25d9188fe7fe00ccbb
parent3f17b74aa57ac1ea2f3aa93dec4889778a21afeb
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