]> git.karo-electronics.de Git - karo-tx-linux.git/commitdiff
[PATCH] setkeys needs root
authorDaniel Drake <dsd@gentoo.org>
Fri, 2 Dec 2005 20:56:21 +0000 (20:56 +0000)
committerGreg Kroah-Hartman <gregkh@suse.de>
Wed, 14 Dec 2005 23:42:55 +0000 (15:42 -0800)
This patch combines commit 0b360adbdb54d5b98b78d57ba0916bc4b8871968 (make
setkeys root-only) and commit e3f17f0f6e98f58edb13cb38810d93e6d4808e68 (only
disallow setting by users)

   Because people can play games reprogramming keys and leaving traps for the
   next user of the console.

Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
drivers/char/vt_ioctl.c

index 1d44f69e1fda12bfb0abd092435d53ab04d9c610..24011e7c81ff72fa6bade2d7c889c8a0c2c48c5a 100644 (file)
@@ -80,6 +80,9 @@ do_kdsk_ioctl(int cmd, struct kbentry __user *user_kbe, int perm, struct kbd_str
        if (copy_from_user(&tmp, user_kbe, sizeof(struct kbentry)))
                return -EFAULT;
 
+       if (!capable(CAP_SYS_TTY_CONFIG))
+               perm = 0;
+
        switch (cmd) {
        case KDGKBENT:
                key_map = key_maps[s];
@@ -192,6 +195,9 @@ do_kdgkb_ioctl(int cmd, struct kbsentry __user *user_kdgkb, int perm)
        int i, j, k;
        int ret;
 
+       if (!capable(CAP_SYS_TTY_CONFIG))
+               perm = 0;
+
        kbs = kmalloc(sizeof(*kbs), GFP_KERNEL);
        if (!kbs) {
                ret = -ENOMEM;