summaryrefslogtreecommitdiff
path: root/source3/libsmb/asn1.c
diff options
context:
space:
mode:
Diffstat (limited to 'source3/libsmb/asn1.c')
-rw-r--r--source3/libsmb/asn1.c21
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 */