From 5cdde08ea869ef02111f618ad782d392a296eb7f Mon Sep 17 00:00:00 2001 From: "Neal H. Walfield" Date: Tue, 2 Feb 2016 20:05:45 +0100 Subject: [PATCH] gpg: Fix calc_header_length when LEN is 0 and improve documentation. * g10/build-packet.c (calc_header_length): Return the correct haeder size when LEN is 0. Fix documentation. -- Signed-off-by: Neal H. Walfield GnuPG-bug-id: 2240 --- g10/build-packet.c | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/g10/build-packet.c b/g10/build-packet.c index 269c63ca9..42452086d 100644 --- a/g10/build-packet.c +++ b/g10/build-packet.c @@ -1215,14 +1215,18 @@ write_32(IOBUF out, u32 a) /**************** - * calculate the length of a header + * calculate the length of a header. + * + * LEN is the length of the packet's body. NEW_CTB is whether we are + * using a new or old format packet. + * + * This function does not handle indeterminate lengths or partial body + * lengths. (If you pass LEN as 0, then this function assumes you + * really mean an empty body.) */ static int calc_header_length( u32 len, int new_ctb ) { - if( !len ) - return 1; /* only the ctb */ - if( new_ctb ) { if( len < 192 ) return 2;