X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=blobdiff_plain;f=src%2Flocale%2Flocaled.c;h=529a9abfd6fdbeb4175daeddd0f4cd442c958f66;hb=c4f1aff2306e4fb10efeda75f7015e5d043d4e8d;hp=8d60d0ff133755478e4ed447b6709842e5210f35;hpb=8433e33955f797510a3f323da9ffa08d12c374f4;p=elogind.git diff --git a/src/locale/localed.c b/src/locale/localed.c index 8d60d0ff1..529a9abfd 100644 --- a/src/locale/localed.c +++ b/src/locale/localed.c @@ -23,7 +23,6 @@ #include #include #include -#include #include "sd-bus.h" @@ -40,6 +39,7 @@ #include "bus-message.h" #include "event-util.h" #include "locale-util.h" +#include "selinux-util.h" #ifdef HAVE_XKBCOMMON #include @@ -965,8 +965,8 @@ static int method_set_vc_keyboard(sd_bus *bus, sd_bus_message *m, void *userdata if (!streq_ptr(keymap, c->vc_keymap) || !streq_ptr(keymap_toggle, c->vc_keymap_toggle)) { - if ((keymap && (!filename_is_safe(keymap) || !string_is_safe(keymap))) || - (keymap_toggle && (!filename_is_safe(keymap_toggle) || !string_is_safe(keymap_toggle)))) + if ((keymap && (!filename_is_valid(keymap) || !string_is_safe(keymap))) || + (keymap_toggle && (!filename_is_valid(keymap_toggle) || !string_is_safe(keymap_toggle)))) return sd_bus_error_set_errnof(error, -EINVAL, "Received invalid keymap data"); r = bus_verify_polkit_async(m, CAP_SYS_ADMIN, "org.freedesktop.locale1.set-keyboard", interactive, &c->polkit_registry, error);