Fix unsafe behaviour in MBEDTLS_ASN1_IS_STRING_TAG

Signed-off-by: Agathiyan Bragadeesh <agathiyan.bragadeesh2@arm.com>
This commit is contained in:
Agathiyan Bragadeesh 2023-08-30 16:22:54 +01:00
parent de02ee268e
commit 52af0d08b4

View file

@ -96,14 +96,14 @@
/* Slightly smaller way to check if tag is a string tag
* compared to canonical implementation. */
#define MBEDTLS_ASN1_IS_STRING_TAG(tag) \
((tag) < 32 && ( \
((1 << (tag)) & ((1 << MBEDTLS_ASN1_BMP_STRING) | \
(1 << MBEDTLS_ASN1_UTF8_STRING) | \
(1 << MBEDTLS_ASN1_T61_STRING) | \
(1 << MBEDTLS_ASN1_IA5_STRING) | \
(1 << MBEDTLS_ASN1_UNIVERSAL_STRING) | \
(1 << MBEDTLS_ASN1_PRINTABLE_STRING))) != 0))
#define MBEDTLS_ASN1_IS_STRING_TAG(tag) \
((unsigned int) (tag) < 32u && ( \
((1u << (tag)) & ((1u << MBEDTLS_ASN1_BMP_STRING) | \
(1u << MBEDTLS_ASN1_UTF8_STRING) | \
(1u << MBEDTLS_ASN1_T61_STRING) | \
(1u << MBEDTLS_ASN1_IA5_STRING) | \
(1u << MBEDTLS_ASN1_UNIVERSAL_STRING) | \
(1u << MBEDTLS_ASN1_PRINTABLE_STRING))) != 0))
/*
* Bit masks for each of the components of an ASN.1 tag as specified in