Rework ASN1_STRING_set()
authorjsing <jsing@openbsd.org>
Thu, 17 Mar 2022 17:17:58 +0000 (17:17 +0000)
committerjsing <jsing@openbsd.org>
Thu, 17 Mar 2022 17:17:58 +0000 (17:17 +0000)
commit867c12bbb15dfc97f01d9212285fc9ad27aca4f7
treef59a5b11be3f3c4027401fdebfbb9d56136b709a
parenta8f11dad4b9930f3332fe974e99ffe7e256f55f7
Rework ASN1_STRING_set()

Rework ASN1_STRING_set() so that we always clear and free an existing
allocation, prior to storing the new data. This fixes a number of issues,
including a failure to zero data if the existing allocation was too small.
This also fixes other bugs such as leaving the allocation uninitialised
if NULL is passed for data. Require -1 where strlen() is expected and
improve length and overflow checks.

ok inoguchi@ tb@
lib/libcrypto/asn1/a_string.c