From 5eb6899f3e30ff2f687674375dca3e4586b98b97 Mon Sep 17 00:00:00 2001 From: Werner Koch Date: Fri, 18 Jun 2010 08:08:49 +0000 Subject: [PATCH] Backport bug fix. Fixes bug#1240. --- g10/ChangeLog | 5 +++++ g10/parse-packet.c | 12 ++++++++++-- 2 files changed, 15 insertions(+), 2 deletions(-) diff --git a/g10/ChangeLog b/g10/ChangeLog index cbe1a182e..4df669496 100644 --- a/g10/ChangeLog +++ b/g10/ChangeLog @@ -1,3 +1,8 @@ +2010-06-18 Werner Koch + + * parse-packet.c (skip_packet, parse_gpg_control): Take care of + premature EOFs. Backport from trunk. + 2010-06-17 Werner Koch * gpg.c (main): Use CAST5 as default s2k algo. The macro diff --git a/g10/parse-packet.c b/g10/parse-packet.c index 16ca7514f..bbd58085d 100644 --- a/g10/parse-packet.c +++ b/g10/parse-packet.c @@ -682,7 +682,11 @@ skip_packet( IOBUF inp, int pkttype, unsigned long pktlen, int partial ) else { for( ; pktlen; pktlen-- ) - dump_hex_line(iobuf_get(inp), &i); + { + dump_hex_line ((c=iobuf_get(inp)), &i); + if (c == -1) + break; + } } putc ('\n', listfp); return; @@ -2529,7 +2533,11 @@ parse_gpg_control (IOBUF inp, int pkttype, unsigned long pktlen, } else { for( ; pktlen; pktlen-- ) - dump_hex_line(iobuf_get(inp), &i); + { + dump_hex_line ((c=iobuf_get (inp)), &i); + if (c == -1) + break; + } } putc ('\n', listfp); }