Revert to original...
[oweals/openssl.git] / crypto / asn1 / tasn_prn.c
index 3cc98ea7d2258211470b809317ec78b117f11c20..cf4c4ab3740f93b36a9fc8f9524e42b452d9df5d 100644 (file)
@@ -343,7 +343,7 @@ int asn1_template_print_ctx(BIO *out, ASN1_VALUE **fld, int indent,
        const char *sname, *fname;
        flags = tt->flags;
        if(pctx->flags & ASN1_PCTX_FLAGS_SHOW_FIELD_STRUCT_NAME)
-               sname = tt->item->sname;
+               sname = ASN1_ITEM_ptr(tt->item)->sname;
        else
                sname = NULL;
        if(pctx->flags & ASN1_PCTX_FLAGS_NO_FIELD_NAME)
@@ -378,7 +378,7 @@ int asn1_template_print_ctx(BIO *out, ASN1_VALUE **fld, int indent,
 
                        skitem = (ASN1_VALUE *)sk_value((STACK *)*fld, i);
                        if (!asn1_item_print_ctx(out, &skitem, indent + 2,
-                                       tt->item, NULL, NULL, 1, pctx))
+                               ASN1_ITEM_ptr(tt->item), NULL, NULL, 1, pctx))
                                return 0;
                        }
                if (!i && BIO_printf(out, "%*s<EMPTY>\n", indent + 2, "") <= 0)
@@ -390,7 +390,7 @@ int asn1_template_print_ctx(BIO *out, ASN1_VALUE **fld, int indent,
                        }
                return 1;
                }
-       return asn1_item_print_ctx(out, fld, indent, tt->item,
+       return asn1_item_print_ctx(out, fld, indent, ASN1_ITEM_ptr(tt->item),
                                                        fname, sname, 0, pctx);
        }
 
@@ -506,7 +506,8 @@ static int asn1_print_obstring_ctx(BIO *out, ASN1_STRING *str, int indent,
                }
        else if (BIO_puts(out, "\n") <= 0)
                return 0;
-       if (BIO_dump_indent(out, (char *)str->data, str->length,
+       if ((str->length > 0)
+               && BIO_dump_indent(out, (char *)str->data, str->length,
                                indent + 2) <= 0)
                return 0;
        return 1;