Avoid signed vs. unsigned warnings (which are treated like errors on
[openssl.git] / crypto / asn1 / tasn_new.c
index e93db4f0c1490d8846966ae91beb189960661e58..6a76a96ba9ceb92c12eebab1696bfa28cce75bb7 100644 (file)
@@ -155,6 +155,7 @@ static int asn1_item_ex_combine_new(ASN1_VALUE **pval, const ASN1_ITEM *it, int
                                goto auxerr;
                break;
 
+               case ASN1_ITYPE_NDEF_SEQUENCE:
                case ASN1_ITYPE_SEQUENCE:
                if(asn1_cb) {
                        i = asn1_cb(ASN1_OP_NEW_PRE, pval, it);
@@ -231,6 +232,7 @@ static void asn1_item_clear(ASN1_VALUE **pval, const ASN1_ITEM *it)
                case ASN1_ITYPE_COMPAT:
                case ASN1_ITYPE_CHOICE:
                case ASN1_ITYPE_SEQUENCE:
+               case ASN1_ITYPE_NDEF_SEQUENCE:
                *pval = NULL;
                break;
        }
@@ -276,7 +278,7 @@ int ASN1_template_new(ASN1_VALUE **pval, const ASN1_TEMPLATE *tt)
        return ret;
 }
 
-void asn1_template_clear(ASN1_VALUE **pval, const ASN1_TEMPLATE *tt)
+static void asn1_template_clear(ASN1_VALUE **pval, const ASN1_TEMPLATE *tt)
 {
        /* If ADB or STACK just NULL the field */
        if(tt->flags & (ASN1_TFLG_ADB_MASK|ASN1_TFLG_SK_MASK)) 
@@ -305,7 +307,10 @@ int ASN1_primitive_new(ASN1_VALUE **pval, const ASN1_ITEM *it)
                return 1;
 
                case V_ASN1_BOOLEAN:
-               *(ASN1_BOOLEAN *)pval = it->size;
+               if (it)
+                       *(ASN1_BOOLEAN *)pval = it->size;
+               else
+                       *(ASN1_BOOLEAN *)pval = -1;
                return 1;
 
                case V_ASN1_NULL: