diff options
author | Fuqian Huang <huangfq.daxian@gmail.com> | 2019-04-18 00:35:57 -0400 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@linuxfoundation.org> | 2019-04-25 05:58:56 -0400 |
commit | 29973f8a88b001ebc605c88cdee124f7256ecdbf (patch) | |
tree | 8606f14cb8e4a3c6f186d8e049f15266be01c59e /drivers/tty/rocket.c | |
parent | 8daa89e099708db1ffc694c812cb3c0737f1e22b (diff) |
tty: rocket: Remove RCPK_GET_STRUCT ioctl
If the cmd is RCPK_GET_STRUCT, copy_to_user will copy
info to user space. As info->port.ops is the address of
a constant object rocket_port_ops (assigned in init_r_port),
a kernel address leakage happens.
Remove the RCPK_GET_STRUCT ioctl.
Signed-off-by: Fuqian Huang <huangfq.daxian@gmail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Diffstat (limited to 'drivers/tty/rocket.c')
-rw-r--r-- | drivers/tty/rocket.c | 4 |
1 files changed, 0 insertions, 4 deletions
diff --git a/drivers/tty/rocket.c b/drivers/tty/rocket.c index b121d8f8f3d7..b6543e28bd8b 100644 --- a/drivers/tty/rocket.c +++ b/drivers/tty/rocket.c | |||
@@ -1283,10 +1283,6 @@ static int rp_ioctl(struct tty_struct *tty, | |||
1283 | return -ENXIO; | 1283 | return -ENXIO; |
1284 | 1284 | ||
1285 | switch (cmd) { | 1285 | switch (cmd) { |
1286 | case RCKP_GET_STRUCT: | ||
1287 | if (copy_to_user(argp, info, sizeof (struct r_port))) | ||
1288 | ret = -EFAULT; | ||
1289 | break; | ||
1290 | case RCKP_GET_CONFIG: | 1286 | case RCKP_GET_CONFIG: |
1291 | ret = get_config(info, argp); | 1287 | ret = get_config(info, argp); |
1292 | break; | 1288 | break; |