libmicrohttpd

HTTP/1.x server C library (MHD 1.x, stable)
Log | Files | Refs | Submodules | README | LICENSE

commit 76db47cfb47594ad846cc94cfcea91a4c87cfeaf
parent 1be634886d61c176df26b8e0784e2f751e563c56
Author: Christian Grothoff <christian@grothoff.org>
Date:   Sun, 24 Aug 2008 22:09:35 +0000

leaks

Diffstat:
Msrc/daemon/https/minitasn1/element.c | 25++++++++++++++++++++-----
1 file changed, 20 insertions(+), 5 deletions(-)

diff --git a/src/daemon/https/minitasn1/element.c b/src/daemon/https/minitasn1/element.c @@ -420,7 +420,10 @@ asn1_write_value (ASN1_TYPE node_root, const char *name, asn1_length_der (len - k, NULL, &len2); temp = (unsigned char *) _asn1_alloca (len - k + len2); if (temp == NULL) - return ASN1_MEM_ALLOC_ERROR; + { + _asn1_afree (value_temp); + return ASN1_MEM_ALLOC_ERROR; + } asn1_octet_der (value_temp + k, len - k, temp, &len2); _asn1_set_value (node, temp, len2); @@ -438,7 +441,10 @@ asn1_write_value (ASN1_TYPE node_root, const char *name, default_temp = (unsigned char *) _asn1_alloca (SIZEOF_UNSIGNED_LONG_INT); if (default_temp == NULL) - return ASN1_MEM_ALLOC_ERROR; + { + _asn1_afree (value_temp); + return ASN1_MEM_ALLOC_ERROR; + } _asn1_convert_integer (p->value, default_temp, SIZEOF_UNSIGNED_LONG_INT, &len2); @@ -446,7 +452,10 @@ asn1_write_value (ASN1_TYPE node_root, const char *name, else { /* is an identifier like v1 */ if (!(node->type & CONST_LIST)) - return ASN1_VALUE_NOT_VALID; + { + _asn1_afree (value_temp); + return ASN1_VALUE_NOT_VALID; + } p2 = node->down; while (p2) { @@ -458,7 +467,10 @@ asn1_write_value (ASN1_TYPE node_root, const char *name, (unsigned char *) _asn1_alloca (SIZEOF_UNSIGNED_LONG_INT); if (default_temp == NULL) - return ASN1_MEM_ALLOC_ERROR; + { + _asn1_afree (value_temp); + return ASN1_MEM_ALLOC_ERROR; + } _asn1_convert_integer (p2->value, default_temp, @@ -470,7 +482,10 @@ asn1_write_value (ASN1_TYPE node_root, const char *name, p2 = p2->right; } if (p2 == NULL) - return ASN1_VALUE_NOT_VALID; + { + _asn1_afree (value_temp); + return ASN1_VALUE_NOT_VALID; + } }