chiark / gitweb /
site.c: Don't overwrite `st->sharedsecret' if it's null.
authorMark Wooding <mdw@distorted.org.uk>
Sat, 29 Apr 2017 12:55:40 +0000 (13:55 +0100)
committerIan Jackson <ijackson@chiark.greenend.org.uk>
Sat, 18 May 2019 00:19:44 +0000 (01:19 +0100)
In this case, `st->sharesecretlen' is zero, but this is still undefined
behaviour.

Signed-off-by: Mark Wooding <mdw@distorted.org.uk>
site.c

diff --git a/site.c b/site.c
index 0da21efcd3b6b9f82018afeab3fe29eb48e929a1..04e3a0d8584cb995a30f688f6dd27723b31857ff 100644 (file)
--- a/site.c
+++ b/site.c
@@ -1456,7 +1456,7 @@ static void enter_state_run(struct site *st)
     FILLZERO(st->remoteN);
     dispose_transform(&st->new_transform);
     memset(st->dhsecret,0,st->dh->len);
-    memset(st->sharedsecret,0,st->sharedsecretlen);
+    if (st->sharedsecret) memset(st->sharedsecret,0,st->sharedsecretlen);
     set_link_quality(st);
 
     if (st->keepalive && !current_valid(st))