summaryrefslogtreecommitdiffstats
path: root/source/libsmb/asn1.c
diff options
context:
space:
mode:
authorJeremy Allison <jra@samba.org>2004-02-11 19:59:17 +0000
committerJeremy Allison <jra@samba.org>2004-02-11 19:59:17 +0000
commit86b030197db63ac0a04b8ea877d80a3d74a7a187 (patch)
tree0618dee8e80a56b2eb718344dcfd95dd3fb445f9 /source/libsmb/asn1.c
parent5379ad98241950c581d88acbee1e256187b13582 (diff)
downloadsamba-86b030197db63ac0a04b8ea877d80a3d74a7a187.tar.gz
samba-86b030197db63ac0a04b8ea877d80a3d74a7a187.tar.xz
samba-86b030197db63ac0a04b8ea877d80a3d74a7a187.zip
Paranoia fixes :-).
Jeremy.
Diffstat (limited to 'source/libsmb/asn1.c')
-rw-r--r--source/libsmb/asn1.c8
1 files changed, 8 insertions, 0 deletions
diff --git a/source/libsmb/asn1.c b/source/libsmb/asn1.c
index 576491dd3bc..17170b015f3 100644
--- a/source/libsmb/asn1.c
+++ b/source/libsmb/asn1.c
@@ -365,6 +365,10 @@ BOOL asn1_read_GeneralString(ASN1_DATA *data, char **s)
int len;
if (!asn1_start_tag(data, ASN1_GENERAL_STRING)) return False;
len = asn1_tag_remaining(data);
+ if (len < 0) {
+ data->has_error = True;
+ return False;
+ }
*s = malloc(len+1);
if (! *s) {
data->has_error = True;
@@ -383,6 +387,10 @@ BOOL asn1_read_OctetString(ASN1_DATA *data, DATA_BLOB *blob)
ZERO_STRUCTP(blob);
if (!asn1_start_tag(data, ASN1_OCTET_STRING)) return False;
len = asn1_tag_remaining(data);
+ if (len < 0) {
+ data->has_error = True;
+ return False;
+ }
*blob = data_blob(NULL, len);
asn1_read(data, blob->data, len);
asn1_end_tag(data);