From 3f3a5b5d99080f32112c8bcec32ad4f8421d6459 Mon Sep 17 00:00:00 2001 From: Thierry Boureille Date: Mon, 19 Dec 2011 03:44:48 +0100 Subject: [PATCH] gweb: Add null pointer checks to avoid connman unstability Fix null pointer derefencing in "free_session" and "process_send_buffer" functions --- gweb/gweb.c | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/gweb/gweb.c b/gweb/gweb.c index 3379116..9cf4b02 100644 --- a/gweb/gweb.c +++ b/gweb/gweb.c @@ -144,13 +144,14 @@ static inline void debug(GWeb *web, const char *format, ...) static void free_session(struct web_session *session) { - GWeb *web = session->web; + GWeb *web; if (session == NULL) return; g_free(session->request); + web = session->web; if (session->resolv_action > 0) g_resolv_cancel_lookup(web->resolv, session->resolv_action); @@ -442,10 +443,14 @@ static inline void call_result_func(struct web_session *session, guint16 status) static gboolean process_send_buffer(struct web_session *session) { - GString *buf = session->send_buffer; + GString *buf; gsize count, bytes_written; GIOStatus status; + if (session == NULL) + return FALSE; + + buf = session->send_buffer; count = buf->len; if (count == 0) { -- 2.7.4