diff options
Diffstat (limited to 'source3/libsmb/asn1.c')
-rw-r--r-- | source3/libsmb/asn1.c | 21 |
1 files changed, 5 insertions, 16 deletions
diff --git a/source3/libsmb/asn1.c b/source3/libsmb/asn1.c index 09d4fbb6c9..333d157905 100644 --- a/source3/libsmb/asn1.c +++ b/source3/libsmb/asn1.c @@ -240,9 +240,7 @@ BOOL asn1_start_tag(ASN1_DATA *data, uint8 tag) uint8 b; struct nesting *nesting; - if (!asn1_read_uint8(data, &b)) - return False; - + asn1_read_uint8(data, &b); if (b != tag) { data->has_error = True; return False; @@ -253,18 +251,13 @@ BOOL asn1_start_tag(ASN1_DATA *data, uint8 tag) return False; } - if (!asn1_read_uint8(data, &b)) { - return False; - } - + asn1_read_uint8(data, &b); if (b & 0x80) { int n = b & 0x7f; - if (!asn1_read_uint8(data, &b)) - return False; + asn1_read_uint8(data, &b); nesting->taglen = b; while (n > 1) { - if (!asn1_read_uint8(data, &b)) - return False; + asn1_read_uint8(data, &b); nesting->taglen = (nesting->taglen << 8) | b; n--; } @@ -411,11 +404,7 @@ BOOL asn1_check_enumerated(ASN1_DATA *data, int v) if (!asn1_start_tag(data, ASN1_ENUMERATED)) return False; asn1_read_uint8(data, &b); asn1_end_tag(data); - - if (v != b) - data->has_error = False; - - return !data->has_error; + return !data->has_error && (v == b); } /* write an enumarted value to the stream */ |