obexd: Fix callback->func =! NULL in the xfer_complete() func
authorwangyouwan <wangyouwan@uniontech.com>
Mon, 13 Jun 2022 11:37:13 +0000 (19:37 +0800)
committerAyush Garg <ayush.garg@samsung.com>
Mon, 15 May 2023 09:25:54 +0000 (14:55 +0530)
xfer_complete (obex=0x557d242c8cf0, err=0x557d242ca470,
user_data=0x557d242ca300) at obexd/client/transfer.c:659
659     obexd/client/transfer.c:
(gdb) n
661     in obexd/client/transfer.c
(gdb) n
663     in obexd/client/transfer.c
(gdb) p callback->func
$1 = (transfer_callback_t) 0x0
(gdb) n
668     in obexd/client/transfer.c
(gdb) n
671     in obexd/client/transfer.c
(gdb) n
672     in obexd/client/transfer.c
(gdb) n
676     in obexd/client/transfer.c
(gdb) n
677     in obexd/client/transfer.c
(gdb) n
0x0000000000000000 in ?? ()
(gdb) s
Cannot find bounds of current function
(gdb) c
Continuing.

Program received signal SIGSEGV, Segmentation fault.

Signed-off-by: Manika Shrivastava <manika.sh@samsung.com>
Signed-off-by: Ayush Garg <ayush.garg@samsung.com>
obexd/client/transfer.c

index d8b9f30..f05c844 100755 (executable)
@@ -671,7 +671,10 @@ static void xfer_complete(GObex *obex, GError *err, gpointer user_data)
        else
                transfer_set_status(transfer, TRANSFER_STATUS_COMPLETE);
 
-       if (callback)
+       if (callback == NULL)
+               return;
+
+       if (callback->func)
                callback->func(transfer, err, callback->data);
 }