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:
parent
0f2fedd806
commit
3b9a04844c
8 changed files with 49 additions and 13 deletions
|
@ -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);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue