1
0
Fork 0
mirror of git://git.gnupg.org/gnupg.git synced 2025-07-03 22:56:33 +02:00

* parse-packet.c (parse_plaintext), packet.h, plaintext.c

(handle_plaintext): Fix bug in handling literal packets with zero-length
data (no data was being confused with partial body length).

* misc.c (pct_expando), options.skel: %t means extension ("jpg"). %T means
MIME type ("image/jpeg").

* import.c (import_one): Only trigger trust update if the keyring is
actually changed.

* export.c (do_export_stream): Missing a m_free.
This commit is contained in:
David Shaw 2002-04-23 02:48:44 +00:00
parent 0f2fedd806
commit 3b9a04844c
8 changed files with 49 additions and 13 deletions

View file

@ -1928,7 +1928,7 @@ parse_plaintext( IOBUF inp, int pkttype, unsigned long pktlen,
PACKET *pkt, int new_ctb )
{
int rc = 0;
int mode, namelen;
int mode, namelen, partial=0;
PKT_plaintext *pt;
byte *p;
int c, i;
@ -1938,12 +1938,18 @@ parse_plaintext( IOBUF inp, int pkttype, unsigned long pktlen,
rc = G10ERR_INVALID_PACKET;
goto leave;
}
/* A packet length of zero indicates partial body length. A zero
data length isn't a zero length packet due to the header (mode,
name, etc), so this is accurate. */
if(pktlen==0)
partial=1;
mode = iobuf_get_noeof(inp); if( pktlen ) pktlen--;
namelen = iobuf_get_noeof(inp); if( pktlen ) pktlen--;
pt = pkt->pkt.plaintext = m_alloc(sizeof *pkt->pkt.plaintext + namelen -1);
pt->new_ctb = new_ctb;
pt->mode = mode;
pt->namelen = namelen;
pt->is_partial = partial;
if( pktlen ) {
for( i=0; pktlen > 4 && i < namelen; pktlen--, i++ )
pt->name[i] = iobuf_get_noeof(inp);