const correct ASN1_STRING_TABLE_get()
authortb <tb@openbsd.org>
Sat, 2 Mar 2024 08:50:47 +0000 (08:50 +0000)
committertb <tb@openbsd.org>
Sat, 2 Mar 2024 08:50:47 +0000 (08:50 +0000)
The ability of modifying the ASN1_STRING_TABLE was removed and the table
is now static. Stop casting away const. The only consumer, security/xca,
is already fixed.

ok jsing

lib/libcrypto/asn1/a_strnid.c
lib/libcrypto/asn1/asn1.h

index 58c6e5e..6c0c0f0 100644 (file)
@@ -1,4 +1,4 @@
-/* $OpenBSD: a_strnid.c,v 1.29 2023/12/16 12:56:20 tb Exp $ */
+/* $OpenBSD: a_strnid.c,v 1.30 2024/03/02 08:50:47 tb Exp $ */
 /* Written by Dr Stephen N Henson (steve@openssl.org) for the OpenSSL
  * project 1999.
  */
@@ -141,7 +141,7 @@ ASN1_STRING *
 ASN1_STRING_set_by_NID(ASN1_STRING **out, const unsigned char *in, int inlen,
     int inform, int nid)
 {
-       ASN1_STRING_TABLE *tbl;
+       const ASN1_STRING_TABLE *tbl;
        ASN1_STRING *str = NULL;
        unsigned long mask;
        int ret;
@@ -313,8 +313,7 @@ static const ASN1_STRING_TABLE tbl_standard[] = {
 
 #define N_STRING_TABLE_ENTRIES (sizeof(tbl_standard) / sizeof(tbl_standard[0]))
 
-/* XXX - const */
-ASN1_STRING_TABLE *
+const ASN1_STRING_TABLE *
 ASN1_STRING_TABLE_get(int nid)
 {
        size_t i;
@@ -322,7 +321,7 @@ ASN1_STRING_TABLE_get(int nid)
        for (i = 0; i < N_STRING_TABLE_ENTRIES; i++) {
                const ASN1_STRING_TABLE *entry = &tbl_standard[i];
                if (entry->nid == nid)
-                       return (ASN1_STRING_TABLE *)entry;
+                       return entry;
        }
 
        return NULL;
index cf288e5..1e66ee2 100644 (file)
@@ -1,4 +1,4 @@
-/* $OpenBSD: asn1.h,v 1.83 2024/02/18 16:28:38 tb Exp $ */
+/* $OpenBSD: asn1.h,v 1.84 2024/03/02 08:50:47 tb Exp $ */
 /* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
  * All rights reserved.
  *
@@ -856,7 +856,7 @@ int ASN1_mbstring_ncopy(ASN1_STRING **out, const unsigned char *in, int len,
 
 ASN1_STRING *ASN1_STRING_set_by_NID(ASN1_STRING **out,
     const unsigned char *in, int inlen, int inform, int nid);
-ASN1_STRING_TABLE *ASN1_STRING_TABLE_get(int nid);
+const ASN1_STRING_TABLE *ASN1_STRING_TABLE_get(int nid);
 int ASN1_STRING_TABLE_add(int, long, long, unsigned long, unsigned long);
 void ASN1_STRING_TABLE_cleanup(void);