diff --git a/client/emv/tlv.c b/client/emv/tlv.c index 346bdbe4f..f3961c7a6 100644 --- a/client/emv/tlv.c +++ b/client/emv/tlv.c @@ -508,7 +508,7 @@ unsigned char *tlv_encode(const struct tlv *tlv, size_t *len) { } bool tlv_is_constructed(const struct tlv *tlv) { - return (tlv->tag < 0x100 ? tlv->tag : tlv->tag >> 8) & TLV_TAG_COMPLEX; + return (((tlv->tag < 0x100 ? tlv->tag : tlv->tag >> 8) & TLV_TAG_COMPLEX) == TLV_TAG_COMPLEX); } bool tlv_equal(const struct tlv *a, const struct tlv *b) {