Commit ad72d9fd authored by Dr. Stephen Henson's avatar Dr. Stephen Henson
Browse files

Check and print out boolean type properly.



If underlying type is boolean don't check field is NULL.

Reviewed-by: default avatarRich Salz <rsalz@openssl.org>
parent e3ea3afd
Loading
Loading
Loading
Loading
+10 −4
Original line number Diff line number Diff line
@@ -151,7 +151,8 @@ static int asn1_item_print_ctx(BIO *out, ASN1_VALUE **fld, int indent,
    } else
        asn1_cb = 0;

    if (*fld == NULL) {
   if (((it->itype != ASN1_ITYPE_PRIMITIVE)
       || (it->utype != V_ASN1_BOOLEAN)) && *fld == NULL) {
        if (pctx->flags & ASN1_PCTX_FLAGS_SHOW_ABSENT) {
            if (!nohdr && !asn1_print_fsname(out, indent, fname, sname, pctx))
                return 0;
@@ -443,11 +444,16 @@ static int asn1_primitive_print(BIO *out, ASN1_VALUE **fld,
        return 0;
    if (pf && pf->prim_print)
        return pf->prim_print(out, fld, it, indent, pctx);
    if (it->itype == ASN1_ITYPE_MSTRING) {
        str = (ASN1_STRING *)*fld;
    if (it->itype == ASN1_ITYPE_MSTRING)
        utype = str->type & ~V_ASN1_NEG;
    else
    } else {
        utype = it->utype;
        if (utype == V_ASN1_BOOLEAN)
            str = NULL;
        else
            str = (ASN1_STRING *)*fld;
    }
    if (utype == V_ASN1_ANY) {
        ASN1_TYPE *atype = (ASN1_TYPE *)*fld;
        utype = atype->type;