Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > linux.kernel > #1345326 > unrolled thread
| Started by | "Michael S. Tsirkin" <mst@redhat.com> |
|---|---|
| First post | 2016-02-28 16:50 +0100 |
| Last post | 2016-02-28 17:00 +0100 |
| Articles | 2 — 2 participants |
Back to article view | Back to linux.kernel
[PATCH for-4.5] watchdog/rc32434_wdt: fix ioctl error handling "Michael S. Tsirkin" <mst@redhat.com> - 2016-02-28 16:50 +0100
Re: [PATCH for-4.5] watchdog/rc32434_wdt: fix ioctl error handling Guenter Roeck <linux@roeck-us.net> - 2016-02-28 17:00 +0100
| From | "Michael S. Tsirkin" <mst@redhat.com> |
|---|---|
| Date | 2016-02-28 16:50 +0100 |
| Subject | [PATCH for-4.5] watchdog/rc32434_wdt: fix ioctl error handling |
| Message-ID | <r7bLz-4E3-9@gated-at.bofh.it> |
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
[toc] | [next] | [standalone]
| From | Guenter Roeck <linux@roeck-us.net> |
|---|---|
| Date | 2016-02-28 17:00 +0100 |
| Message-ID | <r7bVg-4Ib-7@gated-at.bofh.it> |
| In reply to | #1345326 |
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; > } >
[toc] | [prev] | [standalone]
Back to top | Article view | linux.kernel
csiph-web