X-Git-Url: https://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=blobdiff_plain;f=src%2Flocale%2Flocaled.c;h=4d22568787369238f6a6aa1fd35b07f45432aa64;hb=be2ea723b1d023b3d385d3b791ee4607cbfb20ca;hp=4d7d02b9a3a2d6f5591f59a8a05208934464e0b2;hpb=36e34057a202d389263e98030fbd775b28b28af6;p=elogind.git diff --git a/src/locale/localed.c b/src/locale/localed.c index 4d7d02b9a..4d2256878 100644 --- a/src/locale/localed.c +++ b/src/locale/localed.c @@ -23,6 +23,7 @@ #include #include #include +#include #include "sd-bus.h" @@ -876,9 +877,7 @@ static int method_set_locale(sd_bus *bus, sd_bus_message *m, void *userdata, sd_ } if (modified) { - r = bus_verify_polkit_async(bus, &c->polkit_registry, m, - "org.freedesktop.locale1.set-locale", interactive, - error, method_set_locale, c); + r = bus_verify_polkit_async(m, CAP_SYS_ADMIN, "org.freedesktop.locale1.set-locale", interactive, &c->polkit_registry, error); if (r < 0) return r; if (r == 0) @@ -954,9 +953,7 @@ static int method_set_vc_keyboard(sd_bus *bus, sd_bus_message *m, void *userdata (keymap_toggle && (!filename_is_safe(keymap_toggle) || !string_is_safe(keymap_toggle)))) return sd_bus_error_set_errnof(error, -EINVAL, "Received invalid keymap data"); - r = bus_verify_polkit_async(bus, &c->polkit_registry, m, - "org.freedesktop.locale1.set-keyboard", - interactive, error, method_set_vc_keyboard, c); + r = bus_verify_polkit_async(m, CAP_SYS_ADMIN, "org.freedesktop.locale1.set-keyboard", interactive, &c->polkit_registry, error); if (r < 0) return r; if (r == 0) @@ -1026,9 +1023,7 @@ static int method_set_x11_keyboard(sd_bus *bus, sd_bus_message *m, void *userdat (options && !string_is_safe(options))) return sd_bus_error_set_errnof(error, -EINVAL, "Received invalid keyboard data"); - r = bus_verify_polkit_async(bus, &c->polkit_registry, m, - "org.freedesktop.locale1.set-keyboard", - interactive, error, method_set_x11_keyboard, c); + r = bus_verify_polkit_async(m, CAP_SYS_ADMIN, "org.freedesktop.locale1.set-keyboard", interactive, &c->polkit_registry, error); if (r < 0) return r; if (r == 0) @@ -1051,7 +1046,7 @@ static int method_set_x11_keyboard(sd_bus *bus, sd_bus_message *m, void *userdat sd_bus_emit_properties_changed(bus, "/org/freedesktop/locale1", "org.freedesktop.locale1", - "X11Layout" "X11Model" "X11Variant" "X11Options", NULL); + "X11Layout", "X11Model", "X11Variant", "X11Options", NULL); if (convert) { r = x11_convert_to_vconsole(c, bus);