Fix null pointer derefencing in free_session function.
Adding null pointer check in debug and process_send_buffer functions

---
Hi,
Having some crashes, I've fixed them with following minor fixes.

regards

 gweb/gweb.c |   14 ++++++++++++--
 1 files changed, 12 insertions(+), 2 deletions(-)

diff --git a/gweb/gweb.c b/gweb/gweb.c
index 1461346..0f98ade 100644
--- a/gweb/gweb.c
+++ b/gweb/gweb.c
@@ -124,6 +124,8 @@ static inline void debug(GWeb *web, const char *format, ...)
        char str[256];
        va_list ap;
 
+       if (web == NULL)
+               return;
        if (web->debug_func == NULL)
                return;
 
@@ -137,13 +139,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);
 
@@ -421,6 +424,9 @@ static inline void call_result_func(struct web_session 
*session, guint16 status)
 {
        gboolean result;
 
+       if (session == NULL)
+               return;
+
        if (session->result_func == NULL)
                return;
 
@@ -435,10 +441,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;
+
+       buf = session->send_buffer;
        count = buf->len;
 
        if (count == 0) {
-- 1.7.3.4

_______________________________________________
connman mailing list
[email protected]
http://lists.connman.net/listinfo/connman

Reply via email to