From: Alan Date: Mon, 15 Feb 2016 19:09:46 +0000 (+0000) Subject: chipidea: error on overflow for port_test_write X-Git-Tag: v5.15~14021^2~27 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=3c724888d2b1e085cd45343dee5f233aec705439;p=platform%2Fkernel%2Flinux-starfive.git 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 Signed-off-by: Greg Kroah-Hartman --- diff --git a/drivers/usb/chipidea/debug.c b/drivers/usb/chipidea/debug.c index de5c509..6d23eed 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, if (sscanf(buf, "%u", &mode) != 1) return -EINVAL; + if (mode > 255) + return -EBADRQC; + pm_runtime_get_sync(ci->dev); spin_lock_irqsave(&ci->lock, flags); ret = hw_port_test_set(ci, mode);