diff --git a/common/tlv-parser.c b/common/tlv-parser.c index bc22c4f4f..2cafac3e9 100644 --- a/common/tlv-parser.c +++ b/common/tlv-parser.c @@ -556,10 +556,7 @@ tlv_expect_octet_string (tlv_parser_t tlv, int encapsulates, && (!tlv->ti.is_constructed || encapsulates))) return (tlv->lasterr = gpg_error (GPG_ERR_INV_OBJ)); p = tlv->buffer; - n = tlv->ti.length; - if (!n && tlv->ti.ndef) - n = tlv->bufsize; - else if (!tlv->ti.length) + if (!(n=tlv->ti.length) && !tlv->ti.ndef) return (tlv->lasterr = gpg_error (GPG_ERR_TOO_SHORT)); if (encapsulates && tlv->ti.is_constructed