Garbage collect check_defer()
authortb <tb@openbsd.org>
Sat, 13 Jan 2024 11:55:31 +0000 (11:55 +0000)
committertb <tb@openbsd.org>
Sat, 13 Jan 2024 11:55:31 +0000 (11:55 +0000)
This was a mechanism to ensure that OBJ_cleanup() doesn't remove the
ASN1_OBJECT associated with a custom cipher or digest (that was added
with EVP_add_{cipher,digest}(), while the latter is still referenced
in the OBJ_NAME table.

It had the effect that OBJ_cleanup() wasn't actually called ever from
OPENSSL_cleanup() (it is only called if you load the OID conf module).

Oh, and of course it was once part of the public API. I fixed that two
years ago, almost exactly to the day. Still mentioned in OBJ_create.3.

lib/libcrypto/evp/names.c
lib/libcrypto/objects/obj_dat.c

index 6ef061a..7dc9457 100644 (file)
@@ -1,4 +1,4 @@
-/* $OpenBSD: names.c,v 1.27 2024/01/13 11:48:16 tb Exp $ */
+/* $OpenBSD: names.c,v 1.28 2024/01/13 11:55:31 tb Exp $ */
 /* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
  * All rights reserved.
  *
@@ -65,7 +65,6 @@
 #include "evp_local.h"
 
 extern int obj_cleanup_defer;
-void check_defer(int nid);
 
 int
 EVP_add_cipher(const EVP_CIPHER *c)
index e72598e..be80420 100644 (file)
@@ -1,4 +1,4 @@
-/* $OpenBSD: obj_dat.c,v 1.82 2023/12/15 01:51:23 tb Exp $ */
+/* $OpenBSD: obj_dat.c,v 1.83 2024/01/13 11:55:31 tb Exp $ */
 /* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
  * All rights reserved.
  *
@@ -190,13 +190,6 @@ static IMPLEMENT_LHASH_DOALL_FN(cleanup3, ADDED_OBJ)
 
 int obj_cleanup_defer = 0;
 
-void
-check_defer(int nid)
-{
-       if (!obj_cleanup_defer && nid >= NUM_NID)
-               obj_cleanup_defer = 1;
-}
-
 void
 OBJ_cleanup(void)
 {