Commit: 6339cced970f3605e43353f98185817014a29bd1
Parent: 8a5538eaa6edb40693e5f93564c41e59f45bee09
Author: Luiz Augusto von Dentz <luiz.von.dentz@intel.com>
Committer: Luiz Augusto von Dentz <luiz.von.dentz@intel.com>
Date: 2015-07-21 14:55:49
Tree: 2fe7ce1b58eaa2d9236613fe541ff1e6e91b832a

obexd: Fix possible crash while processing pending request session_process_queue needs to be able to access the request .func in case an error happen and it later calls pending_request_free so .process shall not attempt to free the request otherwise it will cause crashes: Invalid read of size 8 at 0x4349D2: session_process_queue (session.c:857) by 0x434AC5: setpath_complete.isra.1 (session.c:1026) by 0x434B29: setpath_cb (session.c:1077) by 0x416448: handle_response (gobex.c:1128) by 0x41739D: incoming_data (gobex.c:1402) by 0x59747FA: g_main_context_dispatch (in /usr/lib64/libglib-2.0.so.0.4200.2) by 0x5974B97: ??? (in /usr/lib64/libglib-2.0.so.0.4200.2) by 0x5974EC1: g_main_loop_run (in /usr/lib64/libglib-2.0.so.0.4200.2) by 0x40E23F: main (main.c:322) Address 0x66e3d30 is 32 bytes inside a block of size 56 free'd at 0x4C2ACE9: free (in /usr/lib64/valgrind/vgpreload_memcheck-amd64-linux.so) by 0x597A50E: g_free (in /usr/lib64/libglib-2.0.so.0.4200.2) by 0x4345F5: pending_request_free (session.c:193) by 0x4348DF: session_process_setpath (session.c:1131) by 0x4349C9: session_process_queue (session.c:854) by 0x434AC5: setpath_complete.isra.1 (session.c:1026) by 0x434B29: setpath_cb (session.c:1077) by 0x416448: handle_response (gobex.c:1128) by 0x41739D: incoming_data (gobex.c:1402) by 0x59747FA: g_main_context_dispatch (in /usr/lib64/libglib-2.0.so.0.4200.2) by 0x5974B97: ??? (in /usr/lib64/libglib-2.0.so.0.4200.2) by 0x5974EC1: g_main_loop_run (in /usr/lib64/libglib-2.0.so.0.4200.2)

Diffstat

M obexd/client/session.c | 30 +++++- - - - - - - - - - - - - - - - - - - - - - - - -

1 files changed, 5 insertions(+), 25 deletions(-)

View Full Diff | Patch