X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=blobdiff_plain;f=src%2Flocale%2Flocaled.c;fp=src%2Flocale%2Flocaled.c;h=7fe73247d420c0f998c85b2f23ab789c14104038;hb=8623d3a3b2e3463fa6e4ded734323483540c3ed4;hp=4e56382f4f2365d6bd4acd2cd7c72cec7981808b;hpb=2f0dd5164d36956197b9e649a100d5cfe08bb247;p=elogind.git diff --git a/src/locale/localed.c b/src/locale/localed.c index 4e56382f4..7fe73247d 100644 --- a/src/locale/localed.c +++ b/src/locale/localed.c @@ -1087,17 +1087,17 @@ 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 = verify_xkb_rmlvo(model, layout, variant, options); - if (r < 0) - log_warning("Cannot compile XKB keymap for new x11 keyboard layout ('%s' / '%s' / '%s' / '%s'): %s", - strempty(model), strempty(layout), strempty(variant), strempty(options), strerror(-r)); - 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) return 1; /* No authorization for now, but the async polkit stuff will call us again when it has it */ + r = verify_xkb_rmlvo(model, layout, variant, options); + if (r < 0) + log_warning("Cannot compile XKB keymap for new x11 keyboard layout ('%s' / '%s' / '%s' / '%s'): %s", + strempty(model), strempty(layout), strempty(variant), strempty(options), strerror(-r)); + if (free_and_strdup(&c->x11_layout, layout) < 0 || free_and_strdup(&c->x11_model, model) < 0 || free_and_strdup(&c->x11_variant, variant) < 0 ||