[PATCH] gweb: Ignore debug calls in case web is NULL

"Richard Röjfors" <[email protected]> Wed, 8 Apr 2026 12:19:50 +0200
Newsgroups dev.linux.lists.connman
Message-ID <[email protected]>
In case of URL parse error, free_session is called
before web is assigned to the session. free_session
makes a call to _debug, which did dereffed web and crashed.

So simply return from _debug in case web is NULL.
---
 gweb/gweb.c | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/gweb/gweb.c b/gweb/gweb.c
index 0a87da64..b9778ec6 100644
--- a/gweb/gweb.c
+++ b/gweb/gweb.c
@@ -177,7 +177,7 @@ static void _debug(GWeb *web, const char *file, const char *caller,
 	va_list ap;
 	int len;
 
-	if (!web->debug_func)
+	if (!web || !web->debug_func)
 		return;
 
 	va_start(ap, format);
@@ -458,11 +458,11 @@ static void free_session(struct web_session *session)
 	if (!session)
 		return;
 
-	debug(session->web, "session %p", session);
+	web = session->web;
 
-	g_free(session->request);
+	debug(web, "session %p", session);
 
-	web = session->web;
+	g_free(session->request);
 
 	if (session->address_action > 0)
 		g_source_remove(session->address_action);
-- 
2.51.0