diff options
author | wangyouwan <wangyouwan@uniontech.com> | 2022-06-13 19:37:13 +0800 |
---|---|---|
committer | Luiz Augusto von Dentz <luiz.von.dentz@intel.com> | 2022-06-13 11:03:48 -0700 |
commit | c6d3bcf3d005ad9c9f8a85a68c88aa7f231d9a60 (patch) | |
tree | e08208c9bbc67fc4103c0ad67fd3f58c1c99254a /obexd | |
parent | 91a48af52efb0751fab396b2b9026c9186b10b88 (diff) | |
download | bluez-c6d3bcf3d005ad9c9f8a85a68c88aa7f231d9a60.tar.gz |
obexd: Fix callback->func =! NULL in the xfer_complete() func
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.
Diffstat (limited to 'obexd')
-rw-r--r-- | obexd/client/transfer.c | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/obexd/client/transfer.c b/obexd/client/transfer.c index dccce03b4..a7a85a0c0 100644 --- a/obexd/client/transfer.c +++ b/obexd/client/transfer.c @@ -666,7 +666,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); } |