Correctly encode FALSE for BOOL in ASN1_TYPE.
authorDr. Stephen Henson <steve@openssl.org>
Thu, 19 Jan 2006 17:19:43 +0000 (17:19 +0000)
committerDr. Stephen Henson <steve@openssl.org>
Thu, 19 Jan 2006 17:19:43 +0000 (17:19 +0000)
crypto/asn1/tasn_enc.c

index f6c8ddef0aada2a0fe61a68ce2f0baec062b12c7..c675c3c832debe1890c1588b2fe4272f1e5e8de3 100644 (file)
@@ -445,9 +445,12 @@ int asn1_ex_i2c(ASN1_VALUE **pval, unsigned char *cout, int *putype, const ASN1_
                case V_ASN1_BOOLEAN:
                tbool = (ASN1_BOOLEAN *)pval;
                if(*tbool == -1) return -1;
-               /* Default handling if value == size field then omit */
-               if(*tbool && (it->size > 0)) return -1;
-               if(!*tbool && !it->size) return -1;
+               if (it->utype != V_ASN1_ANY)
+                       {
+                       /* Default handling if value == size field then omit */
+                       if(*tbool && (it->size > 0)) return -1;
+                       if(!*tbool && !it->size) return -1;
+                       }
                c = (unsigned char)*tbool;
                cont = &c;
                len = 1;