All of lore.kernel.org
 help / color / mirror / Atom feed
From: Bartosz Golaszewski <brgl@bgdev.pl>
To: Linus Walleij <linus.walleij@linaro.org>,
	Alexandre Courbot <gnurou@gmail.com>,
	Bamvor Jian Zhang <bamvor.zhangjian@linaro.org>
Cc: linux-gpio@vger.kernel.org, linux-kernel@vger.kernel.org,
	Bartosz Golaszewski <brgl@bgdev.pl>
Subject: [PATCH 05/10] gpio: mockup: improve the debugfs input sanitization
Date: Thu, 25 May 2017 10:33:42 +0200	[thread overview]
Message-ID: <1495701227-28809-6-git-send-email-brgl@bgdev.pl> (raw)
In-Reply-To: <1495701227-28809-1-git-send-email-brgl@bgdev.pl>

We're currently only checking the first character of the input to the
debugfs event files, so a string like '0sdfdsf' is valid and indicates
a falling edge event.

Be more strict and only allow '0', '1', '0\n' & '1\n'.

Signed-off-by: Bartosz Golaszewski <brgl@bgdev.pl>
---
 drivers/gpio/gpio-mockup.c | 14 ++++++++++----
 1 file changed, 10 insertions(+), 4 deletions(-)

diff --git a/drivers/gpio/gpio-mockup.c b/drivers/gpio/gpio-mockup.c
index ba8d62a..b197b93 100644
--- a/drivers/gpio/gpio-mockup.c
+++ b/drivers/gpio/gpio-mockup.c
@@ -208,8 +208,8 @@ static ssize_t gpio_mockup_event_write(struct file *file,
 	struct seq_file *sfile;
 	struct gpio_desc *desc;
 	struct gpio_chip *gc;
+	char buf[2];
 	int val;
-	char buf;
 
 	sfile = file->private_data;
 	priv = sfile->private;
@@ -220,12 +220,18 @@ static ssize_t gpio_mockup_event_write(struct file *file,
 	if (!chip->lines[priv->offset].irq_enabled)
 		return size;
 
-	if (copy_from_user(&buf, usr_buf, 1))
+	if (size > 2)
+		return -EINVAL;
+
+	if (copy_from_user(&buf, usr_buf, 2))
 		return -EFAULT;
 
-	if (buf == '0')
+	if (size == 2 && buf[1] != '\n')
+		return -EINVAL;
+
+	if (buf[0] == '0')
 		val = 0;
-	else if (buf == '1')
+	else if (buf[0] == '1')
 		val = 1;
 	else
 		return -EINVAL;
-- 
2.9.3


  parent reply	other threads:[~2017-05-25  8:34 UTC|newest]

Thread overview: 22+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-05-25  8:33 [PATCH 00/10] gpio: mockup: updates for 4.13 Bartosz Golaszewski
2017-05-25  8:33 ` [PATCH 01/10] gpio: mockup: fix direction values Bartosz Golaszewski
2017-05-27 16:43   ` Andy Shevchenko
2017-05-29 11:27   ` Linus Walleij
2017-05-25  8:33 ` [PATCH 02/10] gpio: mockup: add prefixes to the direction enum Bartosz Golaszewski
2017-05-29 11:28   ` Linus Walleij
2017-05-25  8:33 ` [PATCH 03/10] gpio: mockup: be quiet unless something goes wrong Bartosz Golaszewski
2017-05-29 11:29   ` Linus Walleij
2017-05-25  8:33 ` [PATCH 04/10] gpio: mockup: support irqmask and irqunmask Bartosz Golaszewski
2017-05-29 11:30   ` Linus Walleij
2017-05-25  8:33 ` Bartosz Golaszewski [this message]
2017-05-27 16:45   ` [PATCH 05/10] gpio: mockup: improve the debugfs input sanitization Andy Shevchenko
2017-05-27 16:47     ` Andy Shevchenko
2017-05-29  6:57       ` Bartosz Golaszewski
2017-05-29 11:32   ` Linus Walleij
2017-05-25  8:33 ` [PATCH 06/10] gpio: mockup: refuse to accept an odd number of GPIO ranges Bartosz Golaszewski
2017-05-27 17:29   ` Andy Shevchenko
2017-05-27 17:30     ` Andy Shevchenko
2017-05-25  8:33 ` [PATCH 07/10] gpio: mockup: improve readability Bartosz Golaszewski
2017-05-25  8:33 ` [PATCH 08/10] gpio: mockup: don't return magic numbers from probe() Bartosz Golaszewski
2017-05-25  8:33 ` [PATCH 09/10] gpio: mockup: improve the error message Bartosz Golaszewski
2017-05-25  8:33 ` [PATCH 10/10] gpio: mockup: add myself as author Bartosz Golaszewski

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=1495701227-28809-6-git-send-email-brgl@bgdev.pl \
    --to=brgl@bgdev.pl \
    --cc=bamvor.zhangjian@linaro.org \
    --cc=gnurou@gmail.com \
    --cc=linus.walleij@linaro.org \
    --cc=linux-gpio@vger.kernel.org \
    --cc=linux-kernel@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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.