OSDN Git Service

obexd/MAP: Fix crash when receiving an event report
authorLuiz Augusto von Dentz <luiz.von.dentz@intel.com>
Tue, 25 Jun 2013 13:44:57 +0000 (16:44 +0300)
committerLuiz Augusto von Dentz <luiz.von.dentz@intel.com>
Tue, 25 Jun 2013 13:44:57 +0000 (16:44 +0300)
Conditional jump or move depends on uninitialised value(s)
   at 0x42C1AF: obex_put_stream_start (obex.c:869)
   by 0x428D1A: mns_put (mns.c:148)
   by 0x42B521: cmd_put (obex.c:982)
   by 0x419FB5: incoming_data (gobex.c:1022)
   by 0x3F31A47A54: g_main_context_dispatch (in /usr/lib64/libglib-2.0.so.0.3400.2)
   by 0x3F31A47D87: ??? (in /usr/lib64/libglib-2.0.so.0.3400.2)
   by 0x3F31A48181: g_main_loop_run (in /usr/lib64/libglib-2.0.so.0.3400.2)
   by 0x40DEE2: main (main.c:319)
 Uninitialised value was created by a stack allocation
   at 0x42C160: obex_put_stream_start (obex.c:862)

obexd/client/mns.c

index 669c904..cf2e77e 100644 (file)
@@ -269,10 +269,10 @@ static void *event_report_open(const char *name, int oflag, mode_t mode,
 
        mns->buffer = g_string_new("");
 
-       if (*err < 0)
-               return NULL;
-       else
-               return mns;
+       if (err != NULL)
+               err = 0;
+
+       return mns;
 }
 
 static int event_report_close(void *obj)