diff options
| author | Alan <gnomes@lxorguk.ukuu.org.uk> | 2016-02-15 14:09:46 -0500 |
|---|---|---|
| committer | Greg Kroah-Hartman <gregkh@linuxfoundation.org> | 2016-02-20 23:15:57 -0500 |
| commit | 3c724888d2b1e085cd45343dee5f233aec705439 (patch) | |
| tree | 9ee72b54c823162edfe0f0b5cbbe107532d9c190 /drivers/usb/chipidea | |
| parent | 0ca10122ca08d21e375b8c85bd7b498b1aeaf55d (diff) | |
chipidea: error on overflow for port_test_write
The write value is 8bit, but currently writing a larger number (eg a doubled
digit) is not errored but instead gets cast and sets off an action probably
undesired.
Signed-off-by: Alan Cox <alan@linux.intel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Diffstat (limited to 'drivers/usb/chipidea')
| -rw-r--r-- | drivers/usb/chipidea/debug.c | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/drivers/usb/chipidea/debug.c b/drivers/usb/chipidea/debug.c index de5c5092d078..6d23eede4d8c 100644 --- a/drivers/usb/chipidea/debug.c +++ b/drivers/usb/chipidea/debug.c | |||
| @@ -100,6 +100,9 @@ static ssize_t ci_port_test_write(struct file *file, const char __user *ubuf, | |||
| 100 | if (sscanf(buf, "%u", &mode) != 1) | 100 | if (sscanf(buf, "%u", &mode) != 1) |
| 101 | return -EINVAL; | 101 | return -EINVAL; |
| 102 | 102 | ||
| 103 | if (mode > 255) | ||
| 104 | return -EBADRQC; | ||
| 105 | |||
| 103 | pm_runtime_get_sync(ci->dev); | 106 | pm_runtime_get_sync(ci->dev); |
| 104 | spin_lock_irqsave(&ci->lock, flags); | 107 | spin_lock_irqsave(&ci->lock, flags); |
| 105 | ret = hw_port_test_set(ci, mode); | 108 | ret = hw_port_test_set(ci, mode); |
