mirror of
https://github.com/openssl/openssl.git
synced 2025-02-17 14:32:04 +08:00
Check and print out boolean type properly.
If underlying type is boolean don't check field is NULL. Reviewed-by: Rich Salz <rsalz@openssl.org>
This commit is contained in:
parent
e3ea3afd6d
commit
ad72d9fdf7
@ -151,7 +151,8 @@ static int asn1_item_print_ctx(BIO *out, ASN1_VALUE **fld, int indent,
|
|||||||
} else
|
} else
|
||||||
asn1_cb = 0;
|
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 (pctx->flags & ASN1_PCTX_FLAGS_SHOW_ABSENT) {
|
||||||
if (!nohdr && !asn1_print_fsname(out, indent, fname, sname, pctx))
|
if (!nohdr && !asn1_print_fsname(out, indent, fname, sname, pctx))
|
||||||
return 0;
|
return 0;
|
||||||
@ -443,11 +444,16 @@ static int asn1_primitive_print(BIO *out, ASN1_VALUE **fld,
|
|||||||
return 0;
|
return 0;
|
||||||
if (pf && pf->prim_print)
|
if (pf && pf->prim_print)
|
||||||
return pf->prim_print(out, fld, it, indent, pctx);
|
return pf->prim_print(out, fld, it, indent, pctx);
|
||||||
str = (ASN1_STRING *)*fld;
|
if (it->itype == ASN1_ITYPE_MSTRING) {
|
||||||
if (it->itype == ASN1_ITYPE_MSTRING)
|
str = (ASN1_STRING *)*fld;
|
||||||
utype = str->type & ~V_ASN1_NEG;
|
utype = str->type & ~V_ASN1_NEG;
|
||||||
else
|
} else {
|
||||||
utype = it->utype;
|
utype = it->utype;
|
||||||
|
if (utype == V_ASN1_BOOLEAN)
|
||||||
|
str = NULL;
|
||||||
|
else
|
||||||
|
str = (ASN1_STRING *)*fld;
|
||||||
|
}
|
||||||
if (utype == V_ASN1_ANY) {
|
if (utype == V_ASN1_ANY) {
|
||||||
ASN1_TYPE *atype = (ASN1_TYPE *)*fld;
|
ASN1_TYPE *atype = (ASN1_TYPE *)*fld;
|
||||||
utype = atype->type;
|
utype = atype->type;
|
||||||
|
Loading…
Reference in New Issue
Block a user