BUG: Signing and encrypting a single space in textmode is broken

Werner Koch wk at gnupg.org
Mon Apr 22 10:13:02 CEST 2002


On Sat, 20 Apr 2002 20:18:55 -0400, David Shaw said:

> The problem seems to be in plaintext.c:handle_plaintext.  If you look
> at the if chain starting at line 117, it looks like this:

>   if(pt->len)
>     {
>       /* read pt->len bytes from the buffer and process them */
>     }
>   else if(!clearsig)
>     {
>       /* read all bytes from the buffer until end, and process them */

Argg.  I should know that one should better not use a special value as
a flag for a different thing (partial length encoded packets).

> The only thing this won't work with is if a GnuPG user signs a
> zero-length or stdin document with --rfc1991 set.  Since GnuPG doesn't

And with the old GnuPG-pre-OpenPGP partial length encoding.  But this
won't be a real problem - support for this should fade out anyway.

I think it will be cleaner to have an extra flag for partial length
encoded literal data packets instead of using the len == 0 and
new_ctb.  Setting it in parse_plaintext() and checking it instead of
!pt->len in handle_plaintext() should be simple enough for such a late
minute fix.

  Werner





More information about the Gnupg-devel mailing list