Fix the crash when recieves "NameOwnerChanged" signal 76/64076/1 accepted/tizen/common/20160330.120217 accepted/tizen/ivi/20160330.025045 accepted/tizen/mobile/20160330.024924 accepted/tizen/tv/20160330.025005 accepted/tizen/wearable/20160330.025034 submit/tizen/20160330.020803
authorDoHyun Pyun <dh79.pyun@samsung.com>
Wed, 30 Mar 2016 01:56:20 +0000 (10:56 +0900)
committerDoHyun Pyun <dh79.pyun@samsung.com>
Wed, 30 Mar 2016 01:56:20 +0000 (10:56 +0900)
We should handle OPP sending IPC methods only using Cynara. And the cynara operation was not verified.
After verifying operations, will enable cynara flag.

01-01 09:13:39.682+0900  4647  4647 D BLUETOOTH_SHARE: bt-share-ipc.c: __event_filter(286) > member (NameOwnerChanged)
01-01 09:13:39.694+0900  4647  4647 E BLUETOOTH_SHARE: bt-share-cynara.c: _bt_share_cynara_get_creds(61) > cynara_creds_dbus_get_pid failed: (null)
01-01 09:13:39.694+0900  4647  4647 E BLUETOOTH_SHARE: bt-share-ipc.c: __event_filter(291) > acquiring cynara creds failed
01-01 09:13:40.333+0900  4647  4647 D BLUETOOTH_SHARE: bt-share-ipc.c: __event_filter(286) > member (NameOwnerChanged)

Change-Id: I637cd912387fd76da5651ab0a7f7ff42c34d432d
Signed-off-by: DoHyun Pyun <dh79.pyun@samsung.com>
bt-share/include/bt-share-cynara.h
bt-share/src/bt-share-ipc.c

index 79d28dd..cb37cd4 100644 (file)
@@ -25,6 +25,8 @@
 
 #define BT_SHARE_PRIVILEGE "http://tizen.org/privilege/bluetooth"
 
+/* #define CYNARA_ENABLE 1 */
+
 typedef struct
 {
        pid_t pid;
index ea96378..0afbea9 100644 (file)
@@ -272,9 +272,12 @@ static DBusHandlerResult __event_filter(DBusConnection *sys_conn,
        int ret;
        char *member;
        struct bt_appdata *ad = app_state;
-       const char *sender;
        const char *path = dbus_message_get_path(msg);
+
+#ifdef CYNARA_ENABLE
+       const char *sender;
        bt_share_cynara_creds sender_creds;
+#endif
 
        if (dbus_message_get_type(msg) != DBUS_MESSAGE_TYPE_SIGNAL)
                return DBUS_HANDLER_RESULT_NOT_YET_HANDLED;
@@ -285,13 +288,6 @@ static DBusHandlerResult __event_filter(DBusConnection *sys_conn,
        member = (char *)dbus_message_get_member(msg);
        DBG("member (%s)\n", member);
 
-       sender = dbus_message_get_sender(msg);
-       ret = _bt_share_cynara_get_creds(sys_conn, sender, &sender_creds);
-       if (ret != 0) {
-               ERR("acquiring cynara creds failed\n");
-               return DBUS_HANDLER_RESULT_NOT_YET_HANDLED;
-       }
-
        if (dbus_message_is_signal(msg, BT_SYSPOPUP_INTERFACE, BT_SYSPOPUP_METHOD_RESPONSE)) {
                int res = 0;
                dbus_message_get_args(msg, NULL,
@@ -301,11 +297,19 @@ static DBusHandlerResult __event_filter(DBusConnection *sys_conn,
        } else if (dbus_message_is_signal(msg, BT_UG_IPC_INTERFACE, BT_UG_IPC_METHOD_SEND)) {
                opc_transfer_info_t *node;
 
+#ifdef CYNARA_ENABLE
+               sender = dbus_message_get_sender(msg);
+               ret = _bt_share_cynara_get_creds(sys_conn, sender, &sender_creds);
+               if (ret != 0) {
+                       ERR("acquiring cynara creds failed\n");
+                       return DBUS_HANDLER_RESULT_NOT_YET_HANDLED;
+               }
+
                if (_bt_share_cynara_check(&sender_creds, BT_SHARE_PRIVILEGE) != BT_SHARE_FAIL) {
                        ERR("Cynara denied file send\n");
                        return DBUS_HANDLER_RESULT_NOT_YET_HANDLED;
                }
-
+#endif
                node = __add_transfer_info(msg);
                if (node == NULL)
                        return DBUS_HANDLER_RESULT_NOT_YET_HANDLED;
@@ -348,11 +352,19 @@ static DBusHandlerResult __event_filter(DBusConnection *sys_conn,
                                BT_SHARE_UI_SIGNAL_SEND_FILE)) {
                opc_transfer_info_t *node;
 
+#ifdef CYNARA_ENABLE
+               sender = dbus_message_get_sender(msg);
+               ret = _bt_share_cynara_get_creds(sys_conn, sender, &sender_creds);
+               if (ret != 0) {
+                       ERR("acquiring cynara creds failed\n");
+                       return DBUS_HANDLER_RESULT_NOT_YET_HANDLED;
+               }
+
                if (_bt_share_cynara_check(&sender_creds, BT_SHARE_PRIVILEGE) != BT_SHARE_FAIL) {
                        ERR("Cynara denied file send\n");
                        return DBUS_HANDLER_RESULT_NOT_YET_HANDLED;
                }
-
+#endif
                node = __add_transfer_info(msg);
                if (node == NULL)
                        return DBUS_HANDLER_RESULT_NOT_YET_HANDLED;