summaryrefslogtreecommitdiff
path: root/src/lib/dev.c
diff options
context:
space:
mode:
authorDimitri Staessens <dimitri@ouroboros.rocks>2026-05-16 15:27:14 +0200
committerSander Vrijders <sander@ouroboros.rocks>2026-05-20 08:17:07 +0200
commitcbf7f953a49a98adfc4803340475ffeccefbe9fb (patch)
tree2881fa378f32e52e7285b3fed22308bb86f1f19c /src/lib/dev.c
parent63d3aa9ab8d8b0b6d8a10362e112a431dcb5b4e9 (diff)
downloadouroboros-cbf7f953a49a98adfc4803340475ffeccefbe9fb.tar.gz
ouroboros-cbf7f953a49a98adfc4803340475ffeccefbe9fb.zip
lib: Free secure memory on process exit
There was a missing crypt_secure_malloc_fini() in the process init/fini path. Also fixes a 0 return from OpenSSL RAND_bytes() being interpreted as succes instead of failure. Signed-off-by: Dimitri Staessens <dimitri@ouroboros.rocks> Signed-off-by: Sander Vrijders <sander@ouroboros.rocks>
Diffstat (limited to 'src/lib/dev.c')
-rw-r--r--src/lib/dev.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/src/lib/dev.c b/src/lib/dev.c
index 7e9b7329..6177e50b 100644
--- a/src/lib/dev.c
+++ b/src/lib/dev.c
@@ -873,7 +873,7 @@ static void init(int argc,
if (crypt_secure_malloc_init(PROC_SECMEM_MAX) < 0) {
fprintf(stderr, "FATAL: Could not init secure malloc.\n");
- goto fail_timerwheel;
+ goto fail_secmem;
}
#if defined PROC_FLOW_STATS
@@ -889,7 +889,9 @@ static void init(int argc,
#if defined PROC_FLOW_STATS
fail_rib_init:
+ crypt_secure_malloc_fini();
#endif
+ fail_secmem:
tw_fini();
fail_timerwheel:
ssm_flow_set_close(proc.fqset);
@@ -947,6 +949,8 @@ static void fini(void)
#ifdef PROC_FLOW_STATS
rib_fini();
#endif
+ crypt_secure_malloc_fini();
+
tw_fini();
ssm_flow_set_close(proc.fqset);