chiark / gitweb /
polkit: if PK is not around, consider this a permission denied error
authorLennart Poettering <lennart@poettering.net>
Thu, 15 Nov 2012 21:45:49 +0000 (22:45 +0100)
committerLennart Poettering <lennart@poettering.net>
Thu, 15 Nov 2012 22:07:25 +0000 (23:07 +0100)
Uninstalling PK should cleanly disable PK authorization but not result
in further runtime errors.

src/shared/polkit.c

index 126096e64fd2453b799722263f19edee85839525..826944585c18e8c1c13b0eac79701d0eb1b4712e 100644 (file)
@@ -112,11 +112,14 @@ int verify_polkit(
 
         reply = dbus_connection_send_with_reply_and_block(c, m, -1, error);
         if (!reply) {
 
         reply = dbus_connection_send_with_reply_and_block(c, m, -1, error);
         if (!reply) {
-                r = -EIO;
-                goto finish;
-        }
 
 
-        if (dbus_set_error_from_message(error, reply)) {
+                /* Treat no PK available as access denied */
+                if (dbus_error_has_name(error, DBUS_ERROR_SERVICE_UNKNOWN)) {
+                        r = -EACCES;
+                        dbus_error_free(error);
+                        goto finish;
+                }
+
                 r = -EIO;
                 goto finish;
         }
                 r = -EIO;
                 goto finish;
         }