summaryrefslogtreecommitdiff
path: root/src/lib/libcrypto/err
diff options
context:
space:
mode:
authortb <>2023-07-28 10:21:01 +0000
committertb <>2023-07-28 10:21:01 +0000
commite68ca11e376f4237fb9f8c10487e2d7b7dbfe585 (patch)
treef5135e3be73a200e3de6c7653f8573224f325770 /src/lib/libcrypto/err
parent80044b19f0ece8df72ab24e3c1d89b8ca3d14bf7 (diff)
downloadopenbsd-e68ca11e376f4237fb9f8c10487e2d7b7dbfe585.tar.gz
openbsd-e68ca11e376f4237fb9f8c10487e2d7b7dbfe585.tar.bz2
openbsd-e68ca11e376f4237fb9f8c10487e2d7b7dbfe585.zip
Remove ERR_{get,set}_implementation()
Much like ex_data, applications can make the library use their own error stack implementation. Well, except as of right now they no longer can. ok jsing
Diffstat (limited to 'src/lib/libcrypto/err')
-rw-r--r--src/lib/libcrypto/err/err.c31
-rw-r--r--src/lib/libcrypto/err/err.h11
2 files changed, 4 insertions, 38 deletions
diff --git a/src/lib/libcrypto/err/err.c b/src/lib/libcrypto/err/err.c
index 8fbeea715e..8beb29543a 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.54 2023/07/07 19:37:53 beck Exp $ */ 1/* $OpenBSD: err.c,v 1.55 2023/07/28 10:21:01 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 *
@@ -125,6 +125,8 @@
125DECLARE_LHASH_OF(ERR_STRING_DATA); 125DECLARE_LHASH_OF(ERR_STRING_DATA);
126DECLARE_LHASH_OF(ERR_STATE); 126DECLARE_LHASH_OF(ERR_STATE);
127 127
128typedef struct st_ERR_FNS ERR_FNS;
129
128static void err_load_strings(int lib, ERR_STRING_DATA *str); 130static void err_load_strings(int lib, ERR_STRING_DATA *str);
129 131
130static void ERR_STATE_free(ERR_STATE *s); 132static void ERR_STATE_free(ERR_STATE *s);
@@ -300,33 +302,6 @@ err_fns_check(void)
300 CRYPTO_w_unlock(CRYPTO_LOCK_ERR); 302 CRYPTO_w_unlock(CRYPTO_LOCK_ERR);
301} 303}
302 304
303/* API functions to get or set the underlying ERR functions. */
304
305const ERR_FNS *
306ERR_get_implementation(void)
307{
308 err_fns_check();
309 return err_fns;
310}
311LCRYPTO_ALIAS(ERR_get_implementation);
312
313int
314ERR_set_implementation(const ERR_FNS *fns)
315{
316 int ret = 0;
317
318 CRYPTO_w_lock(CRYPTO_LOCK_ERR);
319 /* It's too late if 'err_fns' is non-NULL. BTW: not much point setting
320 * an error is there?! */
321 if (!err_fns) {
322 err_fns = fns;
323 ret = 1;
324 }
325 CRYPTO_w_unlock(CRYPTO_LOCK_ERR);
326 return ret;
327}
328LCRYPTO_ALIAS(ERR_set_implementation);
329
330/* These are the callbacks provided to "lh_new()" when creating the LHASH tables 305/* These are the callbacks provided to "lh_new()" when creating the LHASH tables
331 * internal to the "err_defaults" implementation. */ 306 * internal to the "err_defaults" implementation. */
332 307
diff --git a/src/lib/libcrypto/err/err.h b/src/lib/libcrypto/err/err.h
index b61599d508..703817be33 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.29 2023/04/09 19:10:23 tb Exp $ */ 1/* $OpenBSD: err.h,v 1.30 2023/07/28 10:21:01 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 *
@@ -410,15 +410,6 @@ int ERR_get_next_error_library(void);
410int ERR_set_mark(void); 410int ERR_set_mark(void);
411int ERR_pop_to_mark(void); 411int ERR_pop_to_mark(void);
412 412
413/* Already defined in ossl_typ.h */
414/* typedef struct st_ERR_FNS ERR_FNS; */
415/* An application can use this function and provide the return value to loaded
416 * modules that should use the application's ERR state/functionality */
417const ERR_FNS *ERR_get_implementation(void);
418/* A loaded module should call this function prior to any ERR operations using
419 * the application's "ERR_FNS". */
420int ERR_set_implementation(const ERR_FNS *fns);
421
422#ifdef __cplusplus 413#ifdef __cplusplus
423} 414}
424#endif 415#endif