From 6e70a07cfd41dc56f3e1944b35fed24bd19d627b Mon Sep 17 00:00:00 2001 From: JacobBarthelmeh Date: Fri, 15 Nov 2024 11:10:16 -0700 Subject: [PATCH] fix for handling memory on socket timeout --- apps/wolfsshd/wolfsshd.c | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/apps/wolfsshd/wolfsshd.c b/apps/wolfsshd/wolfsshd.c index 5dad0343..9ea7ed77 100644 --- a/apps/wolfsshd/wolfsshd.c +++ b/apps/wolfsshd/wolfsshd.c @@ -2468,9 +2468,11 @@ static int StartSSHD(int argc, char** argv) struct sockaddr_in6 clientAddr; socklen_t clientAddrSz = sizeof(clientAddr); #endif - conn = (WOLFSSHD_CONNECTION*)WMALLOC(sizeof(WOLFSSHD_CONNECTION), NULL, DYNTYPE_SSHD); + conn = (WOLFSSHD_CONNECTION*)WMALLOC(sizeof(WOLFSSHD_CONNECTION), + NULL, DYNTYPE_SSHD); if (conn == NULL) { - wolfSSH_Log(WS_LOG_ERROR, "[SSHD] Failed to malloc memory for connection"); + wolfSSH_Log(WS_LOG_ERROR, + "[SSHD] Failed to malloc memory for connection"); break; } @@ -2536,9 +2538,13 @@ static int StartSSHD(int argc, char** argv) } ret = NewConnection(conn); } + else { + XFREE(conn, NULL, DYNTYPE_SSHD); + } #ifdef _WIN32 /* check if service has been shutdown */ - if (isDaemon && WaitForSingleObject(serviceStop, 0) == WAIT_OBJECT_0) { + if (isDaemon && WaitForSingleObject(serviceStop, 0) == + WAIT_OBJECT_0) { quit = 1; } #endif