asn1: Fix crash found by AFL
This commit is contained in:
@@ -371,7 +371,7 @@ der_get_octet_string_ber (const unsigned char *p, size_t len,
|
|||||||
if (datalen > len)
|
if (datalen > len)
|
||||||
return ASN1_OVERRUN;
|
return ASN1_OVERRUN;
|
||||||
|
|
||||||
if (type == PRIM) {
|
if (type == PRIM && datalen) {
|
||||||
void *ptr;
|
void *ptr;
|
||||||
|
|
||||||
ptr = realloc(data->data, data->length + datalen);
|
ptr = realloc(data->data, data->length + datalen);
|
||||||
@@ -382,7 +382,7 @@ der_get_octet_string_ber (const unsigned char *p, size_t len,
|
|||||||
data->data = ptr;
|
data->data = ptr;
|
||||||
memcpy(((unsigned char *)data->data) + data->length, p, datalen);
|
memcpy(((unsigned char *)data->data) + data->length, p, datalen);
|
||||||
data->length += datalen;
|
data->length += datalen;
|
||||||
} else
|
} else if (type != PRIM)
|
||||||
depth++;
|
depth++;
|
||||||
|
|
||||||
p += datalen;
|
p += datalen;
|
||||||
|
|||||||
Reference in New Issue
Block a user