Handle case where it==NULL
authorDr. Stephen Henson <steve@openssl.org>
Tue, 26 Jul 2005 12:25:06 +0000 (12:25 +0000)
committerDr. Stephen Henson <steve@openssl.org>
Tue, 26 Jul 2005 12:25:06 +0000 (12:25 +0000)
crypto/asn1/tasn_new.c

index 9216342fec945bb40b1180bfcec8622a9398862a..531dad365c0ebe3925eb99f3f79958888162f169 100644 (file)
@@ -326,11 +326,13 @@ int ASN1_primitive_new(ASN1_VALUE **pval, const ASN1_ITEM *it)
        {
        ASN1_TYPE *typ;
        int utype;
        {
        ASN1_TYPE *typ;
        int utype;
-       const ASN1_PRIMITIVE_FUNCS *pf;
-       pf = it->funcs;
 
 
-       if (pf && pf->prim_new)
-               return pf->prim_new(pval, it);
+       if (it && it->funcs)
+               {
+               const ASN1_PRIMITIVE_FUNCS *pf = it->funcs;
+               if (pf->prim_new)
+                       return pf->prim_new(pval, it);
+               }
 
        if (!it || (it->itype == ASN1_ITYPE_MSTRING))
                utype = -1;
 
        if (!it || (it->itype == ASN1_ITYPE_MSTRING))
                utype = -1;
@@ -374,10 +376,9 @@ int ASN1_primitive_new(ASN1_VALUE **pval, const ASN1_ITEM *it)
 void asn1_primitive_clear(ASN1_VALUE **pval, const ASN1_ITEM *it)
        {
        int utype;
 void asn1_primitive_clear(ASN1_VALUE **pval, const ASN1_ITEM *it)
        {
        int utype;
-       const ASN1_PRIMITIVE_FUNCS *pf;
-       pf = it->funcs;
-       if (pf)
+       if (it && it->funcs)
                {
                {
+               const ASN1_PRIMITIVE_FUNCS *pf = it->funcs;
                if (pf->prim_clear)
                        pf->prim_clear(pval, it);
                else 
                if (pf->prim_clear)
                        pf->prim_clear(pval, it);
                else