diff options
author | Marcelo Tosatti <marcelo.tosatti@cyclades.com> | 2005-11-07 03:59:34 -0500 |
---|---|---|
committer | Linus Torvalds <torvalds@g5.osdl.org> | 2005-11-07 10:53:39 -0500 |
commit | e3f17f0f6e98f58edb13cb38810d93e6d4808e68 (patch) | |
tree | c442f18da80497cc45644e41e29ac0efe96498a7 /drivers | |
parent | 796f8d9b98fc92a5e9aaea8cf932957850332f51 (diff) |
[PATCH] Only disallow _setting_ of function key string
Mikael Pettersson <mikpe@csd.uu.se> noted that the current 2.6-git (and 2.4)
patch to disallow KDSKBSENT for unpriviledged users should be less restrictive
allowing reading of current function key string entry, but not writing.
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Diffstat (limited to 'drivers')
-rw-r--r-- | drivers/char/vt_ioctl.c | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/drivers/char/vt_ioctl.c b/drivers/char/vt_ioctl.c index 003dda147cd0..24011e7c81ff 100644 --- a/drivers/char/vt_ioctl.c +++ b/drivers/char/vt_ioctl.c | |||
@@ -80,6 +80,9 @@ do_kdsk_ioctl(int cmd, struct kbentry __user *user_kbe, int perm, struct kbd_str | |||
80 | if (copy_from_user(&tmp, user_kbe, sizeof(struct kbentry))) | 80 | if (copy_from_user(&tmp, user_kbe, sizeof(struct kbentry))) |
81 | return -EFAULT; | 81 | return -EFAULT; |
82 | 82 | ||
83 | if (!capable(CAP_SYS_TTY_CONFIG)) | ||
84 | perm = 0; | ||
85 | |||
83 | switch (cmd) { | 86 | switch (cmd) { |
84 | case KDGKBENT: | 87 | case KDGKBENT: |
85 | key_map = key_maps[s]; | 88 | key_map = key_maps[s]; |
@@ -193,7 +196,7 @@ do_kdgkb_ioctl(int cmd, struct kbsentry __user *user_kdgkb, int perm) | |||
193 | int ret; | 196 | int ret; |
194 | 197 | ||
195 | if (!capable(CAP_SYS_TTY_CONFIG)) | 198 | if (!capable(CAP_SYS_TTY_CONFIG)) |
196 | return -EPERM; | 199 | perm = 0; |
197 | 200 | ||
198 | kbs = kmalloc(sizeof(*kbs), GFP_KERNEL); | 201 | kbs = kmalloc(sizeof(*kbs), GFP_KERNEL); |
199 | if (!kbs) { | 202 | if (!kbs) { |