diff --git a/comar/src/policy.c b/comar/src/policy.c index a61149aaaaeca7dedbe2479b5586892424dae091..b9b2d6a1f26f3da62db155edc9a2fc6b3691450a 100644 --- a/comar/src/policy.c +++ b/comar/src/policy.c @@ -26,6 +26,7 @@ #include "log.h" #include "bus.h" +#include "script.h" #include "policy.h" //! Check if sender is allowed to call method @@ -83,6 +84,13 @@ policy_check(const char *sender, const char *action, int *result) PyObject *ret = bus_execute2(conn, "org.freedesktop.PolicyKit1", "/org/freedesktop/PolicyKit1/Authority", "org.freedesktop.PolicyKit1.Authority", "CheckAuthorization", obj, -1, "(sa{sv})sa{ss}us"); + if (!ret) { + char *eStr, *vStr; + py_catch(&eStr, &vStr, 1); + *result = POLICY_NO; + return 0; + } + if (PyTuple_GetItem(ret, 0) == Py_True) { *result = POLICY_YES; }