From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mx2.suse.de ([195.135.220.15]:48227 "EHLO mx2.suse.de" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751078AbdAUHlf (ORCPT ); Sat, 21 Jan 2017 02:41:35 -0500 From: Jiri Slaby To: stable@vger.kernel.org Cc: Greg Kroah-Hartman , Felipe Balbi , Jiri Slaby Subject: [patch added to 3.12-stable] usb: gadgetfs: restrict upper bound on device configuration size Date: Sat, 21 Jan 2017 08:40:10 +0100 Message-Id: <20170121074102.25260-13-jslaby@suse.cz> In-Reply-To: <20170121074102.25260-1-jslaby@suse.cz> References: <20170121074102.25260-1-jslaby@suse.cz> Sender: stable-owner@vger.kernel.org List-ID: From: Greg Kroah-Hartman This patch has been added to the 3.12 stable tree. If you have any objections, please let us know. =============== commit 0994b0a257557e18ee8f0b7c5f0f73fe2b54eec1 upstream. Andrey Konovalov reported that we were not properly checking the upper limit before of a device configuration size before calling memdup_user(), which could cause some problems. So set the upper limit to PAGE_SIZE * 4, which should be good enough for all devices. Reported-by: Andrey Konovalov Signed-off-by: Felipe Balbi Signed-off-by: Jiri Slaby --- drivers/usb/gadget/inode.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/drivers/usb/gadget/inode.c b/drivers/usb/gadget/inode.c index 4ac9e9928d67..2b56e59a413f 100644 --- a/drivers/usb/gadget/inode.c +++ b/drivers/usb/gadget/inode.c @@ -1849,7 +1849,8 @@ dev_config (struct file *fd, const char __user *buf, size_t len, loff_t *ptr) u32 tag; char *kbuf; - if (len < (USB_DT_CONFIG_SIZE + USB_DT_DEVICE_SIZE + 4)) + if ((len < (USB_DT_CONFIG_SIZE + USB_DT_DEVICE_SIZE + 4)) || + (len > PAGE_SIZE * 4)) return -EINVAL; /* we might need to change message format someday */ -- 2.11.0