kdbus: check policy only for method call or unicast signal 95/139295/1 accepted/tizen/4.0/unified/20170816.012441 accepted/tizen/unified/20170727.190334 submit/tizen/20170719.103604 submit/tizen/20170725.023005 submit/tizen_4.0/20170811.094300
authorsanghyeok.oh <sanghyeok.oh@samsung.com>
Tue, 18 Jul 2017 08:28:16 +0000 (17:28 +0900)
committersanghyeok.oh <sanghyeok.oh@samsung.com>
Tue, 18 Jul 2017 08:42:42 +0000 (17:42 +0900)
Otherwise just send it. It will checked by receiver.

Change-Id: I9652f7548adf9605111d28cdc236f36fbe319c97
Signed-off-by: sanghyeok.oh <sanghyeok.oh@samsung.com>
dbus/dbus-transport-kdbus.c

index c363042..0683db5 100755 (executable)
@@ -675,16 +675,22 @@ can_send (DBusTransportKdbus *transport,
          * Otherwise - check the policy.
          */
         if (0 == reply_serial)
-          ret = dbuspolicy1_check_out (transport->policy,
-                                       dbus_message_get_destination (message),
-                                       transport->my_DBus_unique_name,
-                                       dbus_message_get_path (message),
-                                       dbus_message_get_interface (message),
-                                       dbus_message_get_member (message),
-                                       dbus_message_get_type (message),
-                                       dbus_message_get_error_name (message),
-                                       reply_serial,
-                                       !dbus_message_get_no_reply (message));
+          {
+            /* If method call or unicast signal, check policy */
+            if (dbus_message_get_type (message) == DBUS_MESSAGE_TYPE_METHOD_CALL ||
+               (dbus_message_get_type (message) == DBUS_MESSAGE_TYPE_SIGNAL &&
+                 dbus_message_get_destination (message) != NULL))
+              ret = dbuspolicy1_check_out (transport->policy,
+                                           dbus_message_get_destination (message),
+                                           transport->my_DBus_unique_name,
+                                           dbus_message_get_path (message),
+                                           dbus_message_get_interface (message),
+                                           dbus_message_get_member (message),
+                                           dbus_message_get_type (message),
+                                           dbus_message_get_error_name (message),
+                                           reply_serial,
+                                           !dbus_message_get_no_reply (message));
+          }
       }
 
   return ret;