commit 3306451000364b14a1066a1269f4d213c3083ae9
parent 76db47cfb47594ad846cc94cfcea91a4c87cfeaf
Author: Christian Grothoff <christian@grothoff.org>
Date: Sun, 24 Aug 2008 22:11:38 +0000
leaks
Diffstat:
1 file changed, 8 insertions(+), 2 deletions(-)
diff --git a/src/daemon/https/minitasn1/decoding.c b/src/daemon/https/minitasn1/decoding.c
@@ -629,7 +629,10 @@ _asn1_get_octet_string (const unsigned char *der, node_asn * node, int *len)
temp2 = temp + len2;
len2 = asn1_get_length_der (der, *len, &len3);
if (len2 < -1)
- return ASN1_DER_ERROR;
+ {
+ _asn1_afree (temp);
+ return ASN1_DER_ERROR;
+ }
counter2 = len3 + 1;
if (indefinite == -1)
@@ -642,7 +645,10 @@ _asn1_get_octet_string (const unsigned char *der, node_asn * node, int *len)
len2 =
asn1_get_length_der (der + counter2, *len - counter, &len3);
if (len2 < -1)
- return ASN1_DER_ERROR;
+ {
+ _asn1_afree (temp);
+ return ASN1_DER_ERROR;
+ }
/* FIXME: to be checked. Is this ok? Has the
* size been checked before?