Merge two bugfixes in ASN1_STRING_TABLE_add(3) and ASN1_STRING_TABLE_get(3)
authorschwarze <schwarze@openbsd.org>
Sat, 11 Dec 2021 22:58:48 +0000 (22:58 +0000)
committerschwarze <schwarze@openbsd.org>
Sat, 11 Dec 2021 22:58:48 +0000 (22:58 +0000)
commita57b127569be53cb6f5fee1de226f29dcee95d0b
tree7e67120eeffeaae4ee89bdb2ba1d4b8cb509a483
parent69f42677fb0959a55ce689dc37430085fdfd7602
Merge two bugfixes in ASN1_STRING_TABLE_add(3) and ASN1_STRING_TABLE_get(3)
from the OpenSSL 1.1.1 branch, which is still under a free license,
mostly this commit:

commit d35c0ff30b31be9fd5dcf3d552a16feb8de464bc
Author: Dr. Stephen Henson <steve@openssl.org>
Date: Fri Oct 19 15:06:31 2012 +0000
fix ASN1_STRING_TABLE_add so it can override existing string table values

This fixes a segfault in ASN1_STRING_TABLE_add(3), which tried to change a
static const entry when called with an nid already in the default table,
and it switches the precedence of the two tables in ASN1_STRING_TABLE_get(3).

In addition, it changes behaviour in the following minor ways:
* Ignore negative minsize and maxsize arguments, not just -1.
* Ignore a zero mask and zero flags.
It's unclear whether these additional changes make the API absolutely
better, but we want compatibility with OpenSSL in these functions.

Tweaks & OK tb@.
lib/libcrypto/asn1/a_strnid.c
regress/lib/libcrypto/asn1/Makefile
regress/lib/libcrypto/asn1/string_table.c [new file with mode: 0644]