stable.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [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).