Fix for d2i_ASN1_bytes and stop PKCS#7 routines crashing is signed message
[openssl.git] / crypto / asn1 / a_bytes.c
index de74e8a629a8430d01a982fa57fe394f3c36118e..c894f5664ce59c6098486186f74c8f11d9f34112 100644 (file)
@@ -219,7 +219,7 @@ ASN1_STRING *d2i_ASN1_bytes(ASN1_STRING **a, unsigned char **pp, long length,
                        if ((ret->length < len) || (ret->data == NULL))
                                {
                                if (ret->data != NULL) Free((char *)ret->data);
-                               s=(unsigned char *)Malloc((int)len);
+                               s=(unsigned char *)Malloc((int)len + 1);
                                if (s == NULL)
                                        {
                                        i=ERR_R_MALLOC_FAILURE;
@@ -229,6 +229,7 @@ ASN1_STRING *d2i_ASN1_bytes(ASN1_STRING **a, unsigned char **pp, long length,
                        else
                                s=ret->data;
                        memcpy(s,p,(int)len);
+                       s[len] = '\0';
                        p+=len;
                        }
                else
@@ -314,7 +315,7 @@ static int asn1_collate_primative(ASN1_STRING *a, ASN1_CTX *c)
        if (os != NULL) ASN1_STRING_free(os);
        return(1);
 err:
-       ASN1err(ASN1_F_ASN1_COLLATE_PRIMATIVE,c->error);
+       ASN1err(ASN1_F_ASN1_COLLATE_PRIMITIVE,c->error);
        if (os != NULL) ASN1_STRING_free(os);
        if (b.data != NULL) Free(b.data);
        return(0);