diff options
author | David Shaw <[email protected]> | 2004-10-16 22:48:20 +0000 |
---|---|---|
committer | David Shaw <[email protected]> | 2004-10-16 22:48:20 +0000 |
commit | b03a7a6f3bf93c00e46d90b6cca450e39bb0bb72 (patch) | |
tree | bdea411a99448240221880c9ff3d1387e0bbd22f | |
parent | * http.c (connect_server): [_WIN32] actually fill in the sin_addr so we (diff) | |
download | gnupg-b03a7a6f3bf93c00e46d90b6cca450e39bb0bb72.tar.gz gnupg-b03a7a6f3bf93c00e46d90b6cca450e39bb0bb72.zip |
* parse-packet.c (parse_one_sig_subpkt, enum_sig_subpkt): Don't BUG() on
unknown subpackets. Rather, just return them silently.
Diffstat (limited to '')
-rw-r--r-- | g10/ChangeLog | 5 | ||||
-rw-r--r-- | g10/parse-packet.c | 17 |
2 files changed, 12 insertions, 10 deletions
diff --git a/g10/ChangeLog b/g10/ChangeLog index 8f8f40148..8ac1b0e72 100644 --- a/g10/ChangeLog +++ b/g10/ChangeLog @@ -1,3 +1,8 @@ +2004-10-16 David Shaw <[email protected]> + + * parse-packet.c (parse_one_sig_subpkt, enum_sig_subpkt): Don't + BUG() on unknown subpackets. Rather, just return them silently. + 2004-10-15 Werner Koch <[email protected]> * status.h (STATUS_NEED_PASSPHRASE_PIN): New. diff --git a/g10/parse-packet.c b/g10/parse-packet.c index 48035ad5d..eeb75ac89 100644 --- a/g10/parse-packet.c +++ b/g10/parse-packet.c @@ -955,10 +955,9 @@ dump_sig_subpkt( int hashed, int type, int critical, } /**************** - * Returns: >= 0 offset into buffer - * -1 unknown type - * -2 unsupported type - * -3 subpacket too short + * Returns: >= 0 use this offset into buffer + * -1 explicitly reject returning this type + * -2 subpacket too short */ int parse_one_sig_subpkt( const byte *buffer, size_t n, int type ) @@ -1008,9 +1007,9 @@ parse_one_sig_subpkt( const byte *buffer, size_t n, int type ) if ( n != 2 ) break; return 0; - default: return -1; + default: return 0; } - return -3; + return -2; } @@ -1130,13 +1129,11 @@ enum_sig_subpkt( const subpktarea_t *pktbuf, sigsubpkttype_t reqtype, *ret_n = n; offset = parse_one_sig_subpkt(buffer, n, type ); switch( offset ) { - case -3: - log_error("subpacket of type %d too short\n", type); - return NULL; case -2: + log_error("subpacket of type %d too short\n", type); return NULL; case -1: - BUG(); /* not yet needed */ + return NULL; default: break; } |