Add support for the noCheck OCSP extension. This is
[openssl.git] / crypto / x509v3 / v3_lib.c
index aa04fb24aa588ce049768434f3e298c636b59443..33765118c22015b47497d6b207b40d7e24f20615 100644 (file)
@@ -127,7 +127,7 @@ int X509V3_EXT_add_alias(int nid_to, int nid_from)
                X509V3err(X509V3_F_X509V3_EXT_ADD_ALIAS,X509V3_R_EXTENSION_NOT_FOUND);
                return 0;
        }
-       if(!(tmpext = (X509V3_EXT_METHOD *)Malloc(sizeof(X509V3_EXT_METHOD)))) {
+       if(!(tmpext = (X509V3_EXT_METHOD *)OPENSSL_malloc(sizeof(X509V3_EXT_METHOD)))) {
                X509V3err(X509V3_F_X509V3_EXT_ADD_ALIAS,ERR_R_MALLOC_FAILURE);
                return 0;
        }
@@ -145,7 +145,7 @@ void X509V3_EXT_cleanup(void)
 
 static void ext_list_free(X509V3_EXT_METHOD *ext)
 {
-       if(ext->ext_flags & X509V3_EXT_DYNAMIC) Free(ext);
+       if(ext->ext_flags & X509V3_EXT_DYNAMIC) OPENSSL_free(ext);
 }
 
 /* Legacy function: we don't need to add standard extensions
@@ -163,8 +163,9 @@ void *X509V3_EXT_d2i(X509_EXTENSION *ext)
 {
        X509V3_EXT_METHOD *method;
        unsigned char *p;
-       if(!(method = X509V3_EXT_get(ext)) || !method->d2i) return NULL;
+       if(!(method = X509V3_EXT_get(ext))) return NULL;
        p = ext->value->data;
+       if(method->it) return ASN1_item_d2i(NULL, &p, ext->value->length, method->it);
        return method->d2i(NULL, &p, ext->value->length);
 }
 
@@ -215,7 +216,7 @@ void *X509V3_get_d2i(STACK_OF(X509_EXTENSION) *x, int nid, int *crit, int *idx)
                if(crit) *crit = found_ex->critical;
                return X509V3_EXT_d2i(found_ex);
        }
-       
+
        /* Extension not found */
        if(idx) *idx = -1;
        if(crit) *crit = -1;