Use SCFree instead of free in DER decoder.

remotes/origin/HEAD
Victor Julien 13 years ago
parent c44f4c13fc
commit f9cde717e7

@ -615,13 +615,13 @@ static Asn1Generic * DecodeAsn1DerSequence(const unsigned char *buffer, uint32_t
numbytes = c & 0x7f; numbytes = c & 0x7f;
d_ptr++; d_ptr++;
if (DecodeAsn1BuildValue(&d_ptr, &d_length, numbytes, errcode) == -1) { if (DecodeAsn1BuildValue(&d_ptr, &d_length, numbytes, errcode) == -1) {
free(node); SCFree(node);
return NULL; return NULL;
} }
} }
node->length = d_length + (d_ptr - buffer); node->length = d_length + (d_ptr - buffer);
if (node->length > max_size) { if (node->length > max_size) {
free(node); SCFree(node);
return NULL; return NULL;
} }
@ -671,7 +671,7 @@ static Asn1Generic * DecodeAsn1DerSet(const unsigned char *buffer, uint32_t max_
numbytes = c & 0x7f; numbytes = c & 0x7f;
d_ptr++; d_ptr++;
if (DecodeAsn1BuildValue(&d_ptr, &d_length, numbytes, errcode) == -1) { if (DecodeAsn1BuildValue(&d_ptr, &d_length, numbytes, errcode) == -1) {
free(node); SCFree(node);
return NULL; return NULL;
} }
} }
@ -680,7 +680,7 @@ static Asn1Generic * DecodeAsn1DerSet(const unsigned char *buffer, uint32_t max_
if (node->length > max_size) { if (node->length > max_size) {
if (errcode) if (errcode)
*errcode = ERR_DER_ELEMENT_SIZE_TOO_BIG; *errcode = ERR_DER_ELEMENT_SIZE_TOO_BIG;
free(node); SCFree(node);
return NULL; return NULL;
} }
@ -761,7 +761,7 @@ void DerFree(Asn1Generic *a)
DerFree(it->data); DerFree(it->data);
} }
if (it->str) if (it->str)
free(it->str); SCFree(it->str);
memset(it, 0xff, sizeof(Asn1Generic)); memset(it, 0xff, sizeof(Asn1Generic));
SCFree(it); SCFree(it);
it = n; it = n;

Loading…
Cancel
Save