diff options
| author | tb <> | 2024-03-02 10:30:48 +0000 | 
|---|---|---|
| committer | tb <> | 2024-03-02 10:30:48 +0000 | 
| commit | 695cb1c8837847976b081799d3e5a6efc8a10d82 (patch) | |
| tree | a0232bd4bd01c367e0b424879a078e3cbac3f147 /src | |
| parent | 5a00ce7e0fdf4ebc1ab7bd8381c2bada8bf1b5c7 (diff) | |
| download | openbsd-695cb1c8837847976b081799d3e5a6efc8a10d82.tar.gz openbsd-695cb1c8837847976b081799d3e5a6efc8a10d82.tar.bz2 openbsd-695cb1c8837847976b081799d3e5a6efc8a10d82.zip | |
Remove ERR_get_state
The ERR_STATE struct is an unused implementation detail of the horrific
error stack code. It is the last public consumer of CRYPTO_THREAD
internals. Make this and its accessor internal so we can make the
CRYPTO_THREAD struct opaque.
ok jsing
Diffstat (limited to 'src')
| -rw-r--r-- | src/lib/libcrypto/Symbols.list | 1 | ||||
| -rw-r--r-- | src/lib/libcrypto/Symbols.namespace | 1 | ||||
| -rw-r--r-- | src/lib/libcrypto/err/err.c | 18 | ||||
| -rw-r--r-- | src/lib/libcrypto/err/err.h | 13 | ||||
| -rw-r--r-- | src/lib/libcrypto/hidden/openssl/err.h | 3 | 
5 files changed, 17 insertions, 19 deletions
| diff --git a/src/lib/libcrypto/Symbols.list b/src/lib/libcrypto/Symbols.list index de97306613..715999858e 100644 --- a/src/lib/libcrypto/Symbols.list +++ b/src/lib/libcrypto/Symbols.list | |||
| @@ -1086,7 +1086,6 @@ ERR_get_error | |||
| 1086 | ERR_get_error_line | 1086 | ERR_get_error_line | 
| 1087 | ERR_get_error_line_data | 1087 | ERR_get_error_line_data | 
| 1088 | ERR_get_next_error_library | 1088 | ERR_get_next_error_library | 
| 1089 | ERR_get_state | ||
| 1090 | ERR_lib_error_string | 1089 | ERR_lib_error_string | 
| 1091 | ERR_load_ASN1_strings | 1090 | ERR_load_ASN1_strings | 
| 1092 | ERR_load_BIO_strings | 1091 | ERR_load_BIO_strings | 
| diff --git a/src/lib/libcrypto/Symbols.namespace b/src/lib/libcrypto/Symbols.namespace index a540b31048..6aa4468fae 100644 --- a/src/lib/libcrypto/Symbols.namespace +++ b/src/lib/libcrypto/Symbols.namespace | |||
| @@ -1328,7 +1328,6 @@ _libre_ERR_load_crypto_strings | |||
| 1328 | _libre_ERR_free_strings | 1328 | _libre_ERR_free_strings | 
| 1329 | _libre_ERR_remove_thread_state | 1329 | _libre_ERR_remove_thread_state | 
| 1330 | _libre_ERR_remove_state | 1330 | _libre_ERR_remove_state | 
| 1331 | _libre_ERR_get_state | ||
| 1332 | _libre_ERR_get_next_error_library | 1331 | _libre_ERR_get_next_error_library | 
| 1333 | _libre_ERR_set_mark | 1332 | _libre_ERR_set_mark | 
| 1334 | _libre_ERR_pop_to_mark | 1333 | _libre_ERR_pop_to_mark | 
| diff --git a/src/lib/libcrypto/err/err.c b/src/lib/libcrypto/err/err.c index 036396bc1a..acbcda76cc 100644 --- a/src/lib/libcrypto/err/err.c +++ b/src/lib/libcrypto/err/err.c | |||
| @@ -1,4 +1,4 @@ | |||
| 1 | /* $OpenBSD: err.c,v 1.58 2024/02/24 07:53:01 tb Exp $ */ | 1 | /* $OpenBSD: err.c,v 1.59 2024/03/02 10:30:48 tb Exp $ */ | 
| 2 | /* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) | 2 | /* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) | 
| 3 | * All rights reserved. | 3 | * All rights reserved. | 
| 4 | * | 4 | * | 
| @@ -127,9 +127,22 @@ DECLARE_LHASH_OF(ERR_STATE); | |||
| 127 | 127 | ||
| 128 | typedef struct st_ERR_FNS ERR_FNS; | 128 | typedef struct st_ERR_FNS ERR_FNS; | 
| 129 | 129 | ||
| 130 | typedef struct err_state_st { | ||
| 131 | CRYPTO_THREADID tid; | ||
| 132 | int err_flags[ERR_NUM_ERRORS]; | ||
| 133 | unsigned long err_buffer[ERR_NUM_ERRORS]; | ||
| 134 | char *err_data[ERR_NUM_ERRORS]; | ||
| 135 | int err_data_flags[ERR_NUM_ERRORS]; | ||
| 136 | const char *err_file[ERR_NUM_ERRORS]; | ||
| 137 | int err_line[ERR_NUM_ERRORS]; | ||
| 138 | int top, bottom; | ||
| 139 | } ERR_STATE; | ||
| 140 | |||
| 130 | static void err_load_strings(int lib, ERR_STRING_DATA *str); | 141 | static void err_load_strings(int lib, ERR_STRING_DATA *str); | 
| 131 | 142 | ||
| 143 | static ERR_STATE *ERR_get_state(void); | ||
| 132 | static void ERR_STATE_free(ERR_STATE *s); | 144 | static void ERR_STATE_free(ERR_STATE *s); | 
| 145 | |||
| 133 | #ifndef OPENSSL_NO_ERR | 146 | #ifndef OPENSSL_NO_ERR | 
| 134 | static ERR_STRING_DATA ERR_str_libraries[] = { | 147 | static ERR_STRING_DATA ERR_str_libraries[] = { | 
| 135 | {ERR_PACK(ERR_LIB_NONE,0,0), "unknown library"}, | 148 | {ERR_PACK(ERR_LIB_NONE,0,0), "unknown library"}, | 
| @@ -1020,7 +1033,7 @@ ERR_remove_state(unsigned long pid) | |||
| 1020 | } | 1033 | } | 
| 1021 | LCRYPTO_ALIAS(ERR_remove_state); | 1034 | LCRYPTO_ALIAS(ERR_remove_state); | 
| 1022 | 1035 | ||
| 1023 | ERR_STATE * | 1036 | static ERR_STATE * | 
| 1024 | ERR_get_state(void) | 1037 | ERR_get_state(void) | 
| 1025 | { | 1038 | { | 
| 1026 | static ERR_STATE fallback; | 1039 | static ERR_STATE fallback; | 
| @@ -1058,7 +1071,6 @@ ERR_get_state(void) | |||
| 1058 | } | 1071 | } | 
| 1059 | return ret; | 1072 | return ret; | 
| 1060 | } | 1073 | } | 
| 1061 | LCRYPTO_ALIAS(ERR_get_state); | ||
| 1062 | 1074 | ||
| 1063 | int | 1075 | int | 
| 1064 | ERR_get_next_error_library(void) | 1076 | ERR_get_next_error_library(void) | 
| diff --git a/src/lib/libcrypto/err/err.h b/src/lib/libcrypto/err/err.h index d85de24cb1..e0b4354e49 100644 --- a/src/lib/libcrypto/err/err.h +++ b/src/lib/libcrypto/err/err.h | |||
| @@ -1,4 +1,4 @@ | |||
| 1 | /* $OpenBSD: err.h,v 1.31 2023/07/28 10:23:19 tb Exp $ */ | 1 | /* $OpenBSD: err.h,v 1.32 2024/03/02 10:30:48 tb Exp $ */ | 
| 2 | /* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) | 2 | /* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) | 
| 3 | * All rights reserved. | 3 | * All rights reserved. | 
| 4 | * | 4 | * | 
| @@ -143,16 +143,6 @@ extern "C" { | |||
| 143 | #define ERR_FLAG_MARK 0x01 | 143 | #define ERR_FLAG_MARK 0x01 | 
| 144 | 144 | ||
| 145 | #define ERR_NUM_ERRORS 16 | 145 | #define ERR_NUM_ERRORS 16 | 
| 146 | typedef struct err_state_st { | ||
| 147 | CRYPTO_THREADID tid; | ||
| 148 | int err_flags[ERR_NUM_ERRORS]; | ||
| 149 | unsigned long err_buffer[ERR_NUM_ERRORS]; | ||
| 150 | char *err_data[ERR_NUM_ERRORS]; | ||
| 151 | int err_data_flags[ERR_NUM_ERRORS]; | ||
| 152 | const char *err_file[ERR_NUM_ERRORS]; | ||
| 153 | int err_line[ERR_NUM_ERRORS]; | ||
| 154 | int top, bottom; | ||
| 155 | } ERR_STATE; | ||
| 156 | 146 | ||
| 157 | /* library */ | 147 | /* library */ | 
| 158 | #define ERR_LIB_NONE 1 | 148 | #define ERR_LIB_NONE 1 | 
| @@ -397,7 +387,6 @@ void ERR_free_strings(void); | |||
| 397 | void ERR_remove_thread_state(const CRYPTO_THREADID *tid); | 387 | void ERR_remove_thread_state(const CRYPTO_THREADID *tid); | 
| 398 | /* Wrapped in OPENSSL_NO_DEPRECATED in 0.9.8. Still used in 2023. */ | 388 | /* Wrapped in OPENSSL_NO_DEPRECATED in 0.9.8. Still used in 2023. */ | 
| 399 | void ERR_remove_state(unsigned long pid); | 389 | void ERR_remove_state(unsigned long pid); | 
| 400 | ERR_STATE *ERR_get_state(void); | ||
| 401 | 390 | ||
| 402 | int ERR_get_next_error_library(void); | 391 | int ERR_get_next_error_library(void); | 
| 403 | 392 | ||
| diff --git a/src/lib/libcrypto/hidden/openssl/err.h b/src/lib/libcrypto/hidden/openssl/err.h index 036ead8c08..08f97e1c5d 100644 --- a/src/lib/libcrypto/hidden/openssl/err.h +++ b/src/lib/libcrypto/hidden/openssl/err.h | |||
| @@ -1,4 +1,4 @@ | |||
| 1 | /* $OpenBSD: err.h,v 1.4 2023/07/28 10:23:19 tb Exp $ */ | 1 | /* $OpenBSD: err.h,v 1.5 2024/03/02 10:30:48 tb Exp $ */ | 
| 2 | /* | 2 | /* | 
| 3 | * Copyright (c) 2023 Bob Beck <beck@openbsd.org> | 3 | * Copyright (c) 2023 Bob Beck <beck@openbsd.org> | 
| 4 | * | 4 | * | 
| @@ -53,7 +53,6 @@ LCRYPTO_USED(ERR_load_crypto_strings); | |||
| 53 | LCRYPTO_USED(ERR_free_strings); | 53 | LCRYPTO_USED(ERR_free_strings); | 
| 54 | LCRYPTO_USED(ERR_remove_thread_state); | 54 | LCRYPTO_USED(ERR_remove_thread_state); | 
| 55 | LCRYPTO_USED(ERR_remove_state); | 55 | LCRYPTO_USED(ERR_remove_state); | 
| 56 | LCRYPTO_USED(ERR_get_state); | ||
| 57 | LCRYPTO_USED(ERR_get_next_error_library); | 56 | LCRYPTO_USED(ERR_get_next_error_library); | 
| 58 | LCRYPTO_USED(ERR_set_mark); | 57 | LCRYPTO_USED(ERR_set_mark); | 
| 59 | LCRYPTO_USED(ERR_pop_to_mark); | 58 | LCRYPTO_USED(ERR_pop_to_mark); | 
