aboutsummaryrefslogtreecommitdiff
path: root/src/supplemental
diff options
context:
space:
mode:
authorGarrett D'Amore <garrett@damore.org>2025-06-29 18:49:06 -0700
committerGarrett D'Amore <garrett@damore.org>2025-06-29 18:49:06 -0700
commit16737b7dc4db61b72000482eea508f181c275722 (patch)
treea996a7a25ed1c53ab2f093c47570557ca4f47459 /src/supplemental
parent548037bf5264a8a3bbb2139665bb604014568643 (diff)
downloadnng-16737b7dc4db61b72000482eea508f181c275722.tar.gz
nng-16737b7dc4db61b72000482eea508f181c275722.tar.bz2
nng-16737b7dc4db61b72000482eea508f181c275722.zip
TLS: Configuration does not need to keep a reference to the engine.
This may resolve a surprising NULL pointer dereference.
Diffstat (limited to 'src/supplemental')
-rw-r--r--src/supplemental/tls/tls_common.c13
-rw-r--r--src/supplemental/tls/tls_common.h1
2 files changed, 5 insertions, 9 deletions
diff --git a/src/supplemental/tls/tls_common.c b/src/supplemental/tls/tls_common.c
index f3186493..5c0dcd5d 100644
--- a/src/supplemental/tls/tls_common.c
+++ b/src/supplemental/tls/tls_common.c
@@ -147,9 +147,7 @@ nni_tls_peer_cn(nni_tls_conn *conn)
int
nni_tls_init(nni_tls_conn *conn, nng_tls_config *cfg)
{
- const nng_tls_engine *eng;
-
- eng = cfg->engine;
+ const nng_tls_engine *eng = &nng_tls_engine_ops;
nni_mtx_lock(&cfg->lock);
cfg->busy = true;
@@ -763,11 +761,10 @@ nng_tls_config_alloc(nng_tls_config **cfg_p, nng_tls_mode mode)
return (NNG_ENOMEM);
}
- cfg->ops = *eng->config_ops;
- cfg->size = size;
- cfg->engine = eng;
- cfg->ref = 1;
- cfg->busy = false;
+ cfg->ops = *eng->config_ops;
+ cfg->size = size;
+ cfg->ref = 1;
+ cfg->busy = false;
nni_mtx_init(&cfg->lock);
if ((rv = cfg->ops.init((void *) (cfg + 1), mode)) != 0) {
diff --git a/src/supplemental/tls/tls_common.h b/src/supplemental/tls/tls_common.h
index 14bb0cf7..3d29583b 100644
--- a/src/supplemental/tls/tls_common.h
+++ b/src/supplemental/tls/tls_common.h
@@ -41,7 +41,6 @@
struct nng_tls_config {
nng_tls_engine_config_ops ops;
- const nng_tls_engine *engine; // store this so we can verify
nni_mtx lock;
int ref;
bool busy;