From: <gregkh@linuxfoundation.org>
To: lars@metafoo.de, gregkh@linuxfoundation.org, linus.walleij@linaro.org
Cc: <stable@vger.kernel.org>, <stable-commits@vger.kernel.org>
Subject: Patch "gpio: GPIO_GET_LINEEVENT_IOCTL: Reject invalid line and event flags" has been added to the 4.8-stable tree
Date: Mon, 07 Nov 2016 17:24:14 +0100 [thread overview]
Message-ID: <147853585461102@kroah.com> (raw)
This is a note to let you know that I've just added the patch titled
gpio: GPIO_GET_LINEEVENT_IOCTL: Reject invalid line and event flags
to the 4.8-stable tree which can be found at:
http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary
The filename of the patch is:
gpio-gpio_get_lineevent_ioctl-reject-invalid-line-and-event-flags.patch
and it can be found in the queue-4.8 subdirectory.
If you, or anyone else, feels it should not be added to the stable tree,
please let <stable@vger.kernel.org> know about it.
>From ac7dbb991ee5afc0beacce3a252dcaaa249a7786 Mon Sep 17 00:00:00 2001
From: Lars-Peter Clausen <lars@metafoo.de>
Date: Tue, 18 Oct 2016 16:54:06 +0200
Subject: gpio: GPIO_GET_LINEEVENT_IOCTL: Reject invalid line and event flags
From: Lars-Peter Clausen <lars@metafoo.de>
commit ac7dbb991ee5afc0beacce3a252dcaaa249a7786 upstream.
The GPIO_GET_LINEEVENT_IOCTL currently ignores unknown or undefined
linehandle and lineevent flags. From a backwards and forwards compatibility
viewpoint it is highly desirable to reject unknown flags though.
On one hand an application that is using newer flags and is running on
an older kernel has no way to detect if the new flags were handled
correctly if they are silently discarded.
On the other hand an application that (accidentally) passes undefined flags
will run fine on an older kernel, but may break on a newer kernel when
these flags get defined.
Ensure that requests that have undefined flags set are rejected with an
error, rather than silently discarding the undefined flags.
Fixes: 61f922db7221 ("gpio: userspace ABI for reading GPIO line events")
Signed-off-by: Lars-Peter Clausen <lars@metafoo.de>
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
drivers/gpio/gpiolib.c | 11 +++++++++++
1 file changed, 11 insertions(+)
--- a/drivers/gpio/gpiolib.c
+++ b/drivers/gpio/gpiolib.c
@@ -554,6 +554,10 @@ struct lineevent_state {
struct mutex read_lock;
};
+#define GPIOEVENT_REQUEST_VALID_FLAGS \
+ (GPIOEVENT_REQUEST_RISING_EDGE | \
+ GPIOEVENT_REQUEST_FALLING_EDGE)
+
static unsigned int lineevent_poll(struct file *filep,
struct poll_table_struct *wait)
{
@@ -748,6 +752,13 @@ static int lineevent_create(struct gpio_
ret = -EINVAL;
goto out_free_label;
}
+
+ /* Return an error if a unknown flag is set */
+ if ((lflags & ~GPIOHANDLE_REQUEST_VALID_FLAGS) ||
+ (eflags & ~GPIOEVENT_REQUEST_VALID_FLAGS)) {
+ ret = -EINVAL;
+ goto out_free_label;
+ }
/* This is just wrong: we don't look for events on output lines */
if (lflags & GPIOHANDLE_REQUEST_OUTPUT) {
Patches currently in stable-queue which might be from lars@metafoo.de are
queue-4.8/gpio-gpio_get_chipinfo_ioctl-fix-line-offset-validation.patch
queue-4.8/gpio-gpio_get_line-handle-event-_ioctl-fix-file-descriptor-leak.patch
queue-4.8/gpio-gpio_get_chipinfo_ioctl-fix-information-leak.patch
queue-4.8/gpio-gpio_get_lineevent_ioctl-reject-invalid-line-and-event-flags.patch
queue-4.8/gpio-gpiohandle_get_line_values_ioctl-fix-another-information-leak.patch
queue-4.8/gpio-gpio_get_linehandle_ioctl-reject-invalid-line-flags.patch
queue-4.8/gpio-gpio_get_lineevent_ioctl-validate-line-offset.patch
queue-4.8/gpio-gpiohandle_get_line_values_ioctl-fix-information-leak.patch
queue-4.8/gpio-gpio_get_linehandle_ioctl-validate-line-offset.patch
reply other threads:[~2016-11-07 16:35 UTC|newest]
Thread overview: [no followups] expand[flat|nested] mbox.gz Atom feed
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=147853585461102@kroah.com \
--to=gregkh@linuxfoundation.org \
--cc=lars@metafoo.de \
--cc=linus.walleij@linaro.org \
--cc=stable-commits@vger.kernel.org \
--cc=stable@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
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).