gweb: Add null pointer checks to avoid connman unstability
authorThierry Boureille <thierry.boureille@gmail.com>
Mon, 19 Dec 2011 02:44:48 +0000 (03:44 +0100)
committerDaniel Wagner <daniel.wagner@bmw-carit.de>
Thu, 5 Jan 2012 09:14:41 +0000 (10:14 +0100)
Fix null pointer derefencing in "free_session" and
"process_send_buffer" functions

gweb/gweb.c

index 3379116..9cf4b02 100644 (file)
@@ -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) {