From 5f0eea8dbbc48c870d5a2ddc2b332cb2d75fe009 Mon Sep 17 00:00:00 2001 From: Olaf Bergmann Date: Mon, 22 Aug 2022 20:50:34 +0200 Subject: [PATCH] coap_session.c: Fix adding NULL pointer on error in coap_new_server_session() When coap_make_session() fails, the local variable session will be NULL, and the program continues at the error label. Because of session == NULL, coap_session_free() will return immediately, leaving a NULL entry in ep->sessions. This fix is related to CID 1520613. --- src/coap_session.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/coap_session.c b/src/coap_session.c index 3d7fe9ce..fcc59aef 100644 --- a/src/coap_session.c +++ b/src/coap_session.c @@ -1383,8 +1383,10 @@ error: * Need to add in the session as coap_session_release() * will call SESSIONS_DELETE in coap_session_free(). */ - SESSIONS_ADD(ep->sessions, session); - coap_session_free(session); + if (session) { + SESSIONS_ADD(ep->sessions, session); + coap_session_free(session); + } return NULL; } #endif /* COAP_SERVER_SUPPORT */