aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorWerner Koch <[email protected]>2010-06-18 08:08:21 +0000
committerWerner Koch <[email protected]>2010-06-18 08:08:21 +0000
commit5474061365b63b05f8b5b6701e4ff0dfbcbf1c80 (patch)
treeb1569b62074bbed25cae2d9831de15c3d3f4373a
parentFix bug 1231. (diff)
downloadgnupg-5474061365b63b05f8b5b6701e4ff0dfbcbf1c80.tar.gz
gnupg-5474061365b63b05f8b5b6701e4ff0dfbcbf1c80.zip
Backport bug fix. Fixes bug#1240.
-rw-r--r--g10/ChangeLog5
-rw-r--r--g10/parse-packet.c12
2 files changed, 15 insertions, 2 deletions
diff --git a/g10/ChangeLog b/g10/ChangeLog
index 5419e08b3..6b421df41 100644
--- a/g10/ChangeLog
+++ b/g10/ChangeLog
@@ -1,3 +1,8 @@
+2010-06-18 Werner Koch <[email protected]>
+
+ * parse-packet.c (skip_packet, parse_gpg_control): Take care of
+ premature EOFs. Backport from trunk.
+
2010-06-01 Werner Koch <[email protected]>
* gpg.c (main): Add dummy option --debug-level and ignore
diff --git a/g10/parse-packet.c b/g10/parse-packet.c
index 60ca8af72..4b0fd1c2b 100644
--- a/g10/parse-packet.c
+++ b/g10/parse-packet.c
@@ -622,7 +622,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;
@@ -2441,7 +2445,11 @@ parse_gpg_control( IOBUF inp, int pkttype,
}
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);
}