* [PATCH for-4.5] watchdog/rc32434_wdt: fix ioctl error handling
@ 2016-02-28 15:44 Michael S. Tsirkin
2016-02-28 15:56 ` Guenter Roeck
2016-03-04 19:39 ` Wim Van Sebroeck
0 siblings, 2 replies; 3+ messages in thread
From: Michael S. Tsirkin @ 2016-02-28 15:44 UTC (permalink / raw)
To: linux-kernel
Cc: stable, Wim Van Sebroeck, Guenter Roeck, linux-watchdog,
Dan Carpenter
Calling return copy_to_user(...) in an ioctl will not do the right thing
if there's a pagefault: copy_to_user returns the number of bytes not
copied in this case.
Fix up watchdog/rc32434_wdt to do
return copy_to_user(...)) ? -EFAULT : 0;
instead.
Cc: stable@vger.kernel.org
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
---
Untested.
drivers/watchdog/rc32434_wdt.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/watchdog/rc32434_wdt.c b/drivers/watchdog/rc32434_wdt.c
index 71e78ef..3a75f3b 100644
--- a/drivers/watchdog/rc32434_wdt.c
+++ b/drivers/watchdog/rc32434_wdt.c
@@ -237,7 +237,7 @@ static long rc32434_wdt_ioctl(struct file *file, unsigned int cmd,
return -EINVAL;
/* Fall through */
case WDIOC_GETTIMEOUT:
- return copy_to_user(argp, &timeout, sizeof(int));
+ return copy_to_user(argp, &timeout, sizeof(int)) ? -EFAULT : 0;
default:
return -ENOTTY;
}
--
MST
^ permalink raw reply related [flat|nested] 3+ messages in thread
* Re: [PATCH for-4.5] watchdog/rc32434_wdt: fix ioctl error handling
2016-02-28 15:44 [PATCH for-4.5] watchdog/rc32434_wdt: fix ioctl error handling Michael S. Tsirkin
@ 2016-02-28 15:56 ` Guenter Roeck
2016-03-04 19:39 ` Wim Van Sebroeck
1 sibling, 0 replies; 3+ messages in thread
From: Guenter Roeck @ 2016-02-28 15:56 UTC (permalink / raw)
To: Michael S. Tsirkin, linux-kernel
Cc: stable, Wim Van Sebroeck, linux-watchdog, Dan Carpenter
On 02/28/2016 07:44 AM, Michael S. Tsirkin wrote:
> Calling return copy_to_user(...) in an ioctl will not do the right thing
> if there's a pagefault: copy_to_user returns the number of bytes not
> copied in this case.
>
> Fix up watchdog/rc32434_wdt to do
> return copy_to_user(...)) ? -EFAULT : 0;
>
> instead.
>
> Cc: stable@vger.kernel.org
> Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
Acked-by: Guenter Roeck <linux@roeck-us.net>
> ---
>
> Untested.
>
> drivers/watchdog/rc32434_wdt.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/drivers/watchdog/rc32434_wdt.c b/drivers/watchdog/rc32434_wdt.c
> index 71e78ef..3a75f3b 100644
> --- a/drivers/watchdog/rc32434_wdt.c
> +++ b/drivers/watchdog/rc32434_wdt.c
> @@ -237,7 +237,7 @@ static long rc32434_wdt_ioctl(struct file *file, unsigned int cmd,
> return -EINVAL;
> /* Fall through */
> case WDIOC_GETTIMEOUT:
> - return copy_to_user(argp, &timeout, sizeof(int));
> + return copy_to_user(argp, &timeout, sizeof(int)) ? -EFAULT : 0;
> default:
> return -ENOTTY;
> }
>
^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: [PATCH for-4.5] watchdog/rc32434_wdt: fix ioctl error handling
2016-02-28 15:44 [PATCH for-4.5] watchdog/rc32434_wdt: fix ioctl error handling Michael S. Tsirkin
2016-02-28 15:56 ` Guenter Roeck
@ 2016-03-04 19:39 ` Wim Van Sebroeck
1 sibling, 0 replies; 3+ messages in thread
From: Wim Van Sebroeck @ 2016-03-04 19:39 UTC (permalink / raw)
To: Michael S. Tsirkin
Cc: linux-kernel, stable, Guenter Roeck, linux-watchdog,
Dan Carpenter
Hi Michael,
> Calling return copy_to_user(...) in an ioctl will not do the right thing
> if there's a pagefault: copy_to_user returns the number of bytes not
> copied in this case.
>
> Fix up watchdog/rc32434_wdt to do
> return copy_to_user(...)) ? -EFAULT : 0;
>
> instead.
>
> Cc: stable@vger.kernel.org
> Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
> ---
>
> Untested.
>
> drivers/watchdog/rc32434_wdt.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/drivers/watchdog/rc32434_wdt.c b/drivers/watchdog/rc32434_wdt.c
> index 71e78ef..3a75f3b 100644
> --- a/drivers/watchdog/rc32434_wdt.c
> +++ b/drivers/watchdog/rc32434_wdt.c
> @@ -237,7 +237,7 @@ static long rc32434_wdt_ioctl(struct file *file, unsigned int cmd,
> return -EINVAL;
> /* Fall through */
> case WDIOC_GETTIMEOUT:
> - return copy_to_user(argp, &timeout, sizeof(int));
> + return copy_to_user(argp, &timeout, sizeof(int)) ? -EFAULT : 0;
> default:
> return -ENOTTY;
> }
> --
> MST
Patch has been added to linux-watchdog-next.
Kind regards,
Wim.
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2016-03-04 19:39 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2016-02-28 15:44 [PATCH for-4.5] watchdog/rc32434_wdt: fix ioctl error handling Michael S. Tsirkin
2016-02-28 15:56 ` Guenter Roeck
2016-03-04 19:39 ` Wim Van Sebroeck
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).