summaryrefslogtreecommitdiff
blob: ad489c466184f01932a2520c55972f06483a6798 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
X-Git-Url: http://git.0pointer.de/?p=rtkit.git;a=blobdiff_plain;f=rtkit-daemon.c;h=3ecc1f7840a0d9bdd3af7f08933c4a62546094eb;hp=2ebe673309315f16bc2bc2e0c51a556fb215bc51;hb=88d4082ef6caf6b071d749dca1c50e7edde914cc;hpb=e86e04865ebc1a92c8fa3007843ebcf9c8fa4c05

diff --git a/rtkit-daemon.c b/rtkit-daemon.c
index 2ebe673..3ecc1f7 100644
--- a/rtkit-daemon.c
+++ b/rtkit-daemon.c
@@ -1170,12 +1170,14 @@ static int verify_polkit(DBusConnection *c, struct rtkit_user *u, struct process
         DBusMessage *m = NULL, *r = NULL;
         const char *unix_process = "unix-process";
         const char *pid = "pid";
+        const char *uid = "uid";
         const char *start_time = "start-time";
         const char *cancel_id = "";
         uint32_t flags = 0;
         uint32_t pid_u32 = p->pid;
-        uint64_t start_time_u64 = p->starttime;
+        uint32_t uid_u32 = (uint32_t)u->uid;
         DBusMessageIter iter_msg, iter_struct, iter_array, iter_dict, iter_variant;
+        uint64_t start_time_u64 = p->starttime;
         int ret;
         dbus_bool_t authorized = FALSE;
 
@@ -1206,6 +1208,13 @@ static int verify_polkit(DBusConnection *c, struct rtkit_user *u, struct process
         assert_se(dbus_message_iter_close_container(&iter_dict, &iter_variant));
         assert_se(dbus_message_iter_close_container(&iter_array, &iter_dict));
 
+        assert_se(dbus_message_iter_open_container(&iter_array, DBUS_TYPE_DICT_ENTRY, NULL, &iter_dict));
+        assert_se(dbus_message_iter_append_basic(&iter_dict, DBUS_TYPE_STRING, &uid));
+        assert_se(dbus_message_iter_open_container(&iter_dict, DBUS_TYPE_VARIANT, "u", &iter_variant));
+        assert_se(dbus_message_iter_append_basic(&iter_variant, DBUS_TYPE_UINT32, &uid_u32));
+        assert_se(dbus_message_iter_close_container(&iter_dict, &iter_variant));
+        assert_se(dbus_message_iter_close_container(&iter_array, &iter_dict));
+
         assert_se(dbus_message_iter_close_container(&iter_struct, &iter_array));
         assert_se(dbus_message_iter_close_container(&iter_msg, &iter_struct));