stk: Fix crash when envelope returns sync
authorDenis Kenzior <denkenz@gmail.com>
Sun, 17 Jun 2012 04:22:04 +0000 (23:22 -0500)
committerDenis Kenzior <denkenz@gmail.com>
Sun, 17 Jun 2012 04:22:04 +0000 (23:22 -0500)
ofonod[13066]: src/stk.c:stk_select_item()
ofonod[13066]: src/stk.c:stk_select_item()
ofonod[13066]: src/stk.c:stk_send_envelope()
ofonod[13066]: drivers/qmimodem/stk.c:qmi_envelope()
ofonod[13066]: src/stk.c:envelope_cb() length 0
ofonod[13066]: src/stk.c:menu_selection_envelope_cb()
ofonod[13066]: Sending Menu Selection to UICC failed
process 13066: arguments to dbus_message_new_error() were incorrect,
assertion "reply_to != NULL" failed in file dbus-message.c line 1333.
This is normally a bug in some application using the D-Bus library.
  D-Bus not built with -rdynamic so unable to print a backtrace
  ofonod[13066]: Aborting (signal 6) [./src/ofonod]
  ofonod[13066]: ++++++++ backtrace ++++++++

src/stk.c

index 2ccb25e..7a7bd75 100644 (file)
--- a/src/stk.c
+++ b/src/stk.c
@@ -809,11 +809,12 @@ static DBusMessage *stk_select_item(DBusConnection *conn,
 
        DBG("");
 
-       if (stk_send_envelope(stk, &e, menu_selection_envelope_cb, 0))
-               return __ofono_error_failed(msg);
-
        stk->pending = dbus_message_ref(msg);
 
+       if (stk_send_envelope(stk, &e, menu_selection_envelope_cb, 0))
+               __ofono_dbus_pending_reply(&stk->pending,
+                                       __ofono_error_failed(stk->pending));
+
        return NULL;
 }