Skip to content

Commit

Permalink
[PATCH] lost fput in 32bit ioctl on x86-64
Browse files Browse the repository at this point in the history
This adds a lost fput in 32bit tiocgdev ioctl on x86-64

[ chrisw: Updated to use fget_light/fput_light ]

Signed-Off-By: Kirill Korotaev <dev@sw.ru>
Signed-Off-By: Maxim Giryaev <gem@sw.ru>
Signed-off-by: Chris Wright <chrisw@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
  • Loading branch information
Kirill Korotaev authored and Linus Torvalds committed Sep 9, 2005
1 parent b95adac commit 35311d6
Showing 1 changed file with 13 additions and 4 deletions.
17 changes: 13 additions & 4 deletions arch/x86_64/ia32/ia32_ioctl.c
Original file line number Diff line number Diff line change
Expand Up @@ -24,17 +24,26 @@
static int tiocgdev(unsigned fd, unsigned cmd, unsigned int __user *ptr)
{

struct file *file = fget(fd);
struct file *file;
struct tty_struct *real_tty;
int fput_needed, ret;

file = fget_light(fd, &fput_needed);
if (!file)
return -EBADF;

ret = -EINVAL;
if (file->f_op->ioctl != tty_ioctl)
return -EINVAL;
goto out;
real_tty = (struct tty_struct *)file->private_data;
if (!real_tty)
return -EINVAL;
return put_user(new_encode_dev(tty_devnum(real_tty)), ptr);
goto out;

ret = put_user(new_encode_dev(tty_devnum(real_tty)), ptr);

out:
fput_light(file, fput_needed);
return ret;
}

#define RTC_IRQP_READ32 _IOR('p', 0x0b, unsigned int) /* Read IRQ rate */
Expand Down

0 comments on commit 35311d6

Please sign in to comment.