Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 35311d64 authored by Kirill Korotaev's avatar Kirill Korotaev Committed by Linus Torvalds
Browse files

[PATCH] lost fput in 32bit ioctl on x86-64



This adds a lost fput in 32bit tiocgdev ioctl on x86-64

[ chrisw: Updated to use fget_light/fput_light ]

Signed-Off-By: default avatarKirill Korotaev <dev@sw.ru>
Signed-Off-By: default avatarMaxim Giryaev <gem@sw.ru>
Signed-off-by: default avatarChris Wright <chrisw@osdl.org>
Signed-off-by: default avatarLinus Torvalds <torvalds@osdl.org>
parent b95adac7
Loading
Loading
Loading
Loading
+13 −4
Original line number Diff line number Diff line
@@ -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   */