--- /n/sources/plan9/sys/src/libsec/port/x509.c Tue Sep 17 10:50:09 2013 +++ /sys/src/libsec/port/x509.c Mon Feb 1 21:34:49 2016 @@ -257,15 +257,14 @@ Tag tag; Value val; + memset(pelem, 0, sizeof(*pelem)); err = tag_decode(pp, pend, &tag, &isconstr); if(err == ASN_OK) { err = length_decode(pp, pend, &length); if(err == ASN_OK) { - if(tag.class == Universal) { + if(tag.class == Universal) err = value_decode(pp, pend, length, tag.num, isconstr, &val); - if(val.tag == VSeq || val.tag == VSet) - setmalloctag(val.u.seqval, getcallerpc(&pp)); - }else + else err = value_decode(pp, pend, length, OCTET_STRING, 0, &val); if(err == ASN_OK) { pelem->tag = tag;