checking policy: don't check 'ins' if not a method call 84/65584/1
authorAdrian Szyndela <adrian.s@samsung.com>
Mon, 11 Apr 2016 12:31:59 +0000 (14:31 +0200)
committerAdrian Szyndela <adrian.s@samsung.com>
Mon, 11 Apr 2016 12:39:56 +0000 (14:39 +0200)
Change-Id: I666bc6474475906aa0ca2de96e47bfaa2c402ce2

dbus/dbus-transport-kdbus.c

index 5003068..f8fad93 100644 (file)
@@ -2772,6 +2772,8 @@ can_receive (DBusTransportKdbus     *transport,
         const char *seclabel = NULL;
         DBusString names;
 
+        result = FALSE;
+
         _dbus_string_init (&names);
 
         KDBUS_ITEM_FOREACH(item, msg, items)
@@ -2808,12 +2810,15 @@ can_receive (DBusTransportKdbus     *transport,
 
         if (NULL != message_data && message_len > 0)
           {
-            if (!load_dbus_header (transport, &header, message_data, message_len))
-              return FALSE;
-            got_header = TRUE;
+            if (load_dbus_header (transport, &header, message_data, message_len))
+              got_header = TRUE;
           }
 
-        if (got_header && got_creds && got_seclabel)
+        if (got_header && _dbus_header_get_message_type (&header) != DBUS_MESSAGE_TYPE_METHOD_CALL)
+          {
+            result = TRUE;
+          }
+        else if (got_header && got_creds && got_seclabel)
           {
             const char *destination = NULL;
             const char *path = NULL;
@@ -2874,10 +2879,6 @@ can_receive (DBusTransportKdbus     *transport,
                                         requested_reply);
             result = (1 == ret);
           }
-        else
-          {
-            result = FALSE;
-          }
 
         _dbus_string_free (&names);
       }