diff options
author | Tomas Mraz <tomas@openssl.org> | 2023-03-21 11:36:56 +0100 |
---|---|---|
committer | Tomas Mraz <tomas@openssl.org> | 2023-03-23 15:33:47 +0100 |
commit | 908ba3ed9adbb3df90f7684a3111ca916a45202d (patch) | |
tree | d1776af33ea8dcccfd5ab0d87f5ac08c6f029820 | |
parent | f5935fcf8e4bc2191ac4a32e5b7ec32817642f1e (diff) | |
download | openssl-new-908ba3ed9adbb3df90f7684a3111ca916a45202d.tar.gz |
OBJ_nid2obj(): Return UNDEF object instead of NULL for NID_undef
Fixes a regression from 3.0 from the obj creation refactoring.
Fixes #20555
Reviewed-by: Richard Levitte <levitte@openssl.org>
Reviewed-by: Matt Caswell <matt@openssl.org>
Reviewed-by: Paul Dale <pauli@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/20556)
-rw-r--r-- | crypto/objects/obj_dat.c | 5 | ||||
-rw-r--r-- | test/asn1_internal_test.c | 11 |
2 files changed, 13 insertions, 3 deletions
diff --git a/crypto/objects/obj_dat.c b/crypto/objects/obj_dat.c index ad476136ae..466783d47f 100644 --- a/crypto/objects/obj_dat.c +++ b/crypto/objects/obj_dat.c @@ -299,9 +299,8 @@ ASN1_OBJECT *OBJ_nid2obj(int n) ADDED_OBJ ad, *adp = NULL; ASN1_OBJECT ob; - if (n == NID_undef) - return NULL; - if (n >= 0 && n < NUM_NID && nid_objs[n].nid != NID_undef) + if (n == NID_undef + || (n > 0 && n < NUM_NID && nid_objs[n].nid != NID_undef)) return (ASN1_OBJECT *)&(nid_objs[n]); ad.type = ADDED_NID; diff --git a/test/asn1_internal_test.c b/test/asn1_internal_test.c index d97ca92129..f91e21cb54 100644 --- a/test/asn1_internal_test.c +++ b/test/asn1_internal_test.c @@ -254,6 +254,16 @@ static int test_obj_create(void) return 1; } +static int test_obj_nid_undef(void) +{ + if (!TEST_ptr(OBJ_nid2obj(NID_undef)) + || !TEST_ptr(OBJ_nid2sn(NID_undef)) + || !TEST_ptr(OBJ_nid2ln(NID_undef))) + return 0; + + return 1; +} + int setup_tests(void) { ADD_TEST(test_tbl_standard); @@ -261,5 +271,6 @@ int setup_tests(void) ADD_TEST(test_empty_nonoptional_content); ADD_TEST(test_unicode_range); ADD_TEST(test_obj_create); + ADD_TEST(test_obj_nid_undef); return 1; } |