mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
* [PATCH] usb: fix potential integer overflow in usb_sg_init
@ 2016-01-18 17:06 Insu Yun
  2016-01-18 18:32 ` Alan Stern
  0 siblings, 1 reply; 4+ messages in thread
From: Insu Yun @ 2016-01-18 17:06 UTC (permalink / raw)
  To: gregkh, stefan.koch10, stern, kborer, linux-usb, linux-kernel
  Cc: taesoo, yeongjin.jang, insu, changwoo, Insu Yun

If nents value is sufficient large, e.g 0x40000000, 
then it can overflow size in kmalloc and heap overflow happesns.
Therefore nents value needs to be checked to prevent overflow.

Signed-off-by: Insu Yun <wuninsu@gmail.com>
---
 drivers/usb/core/message.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/drivers/usb/core/message.c b/drivers/usb/core/message.c
index 8e641b5..53393d5 100644
--- a/drivers/usb/core/message.c
+++ b/drivers/usb/core/message.c
@@ -367,7 +367,8 @@ int usb_sg_init(struct usb_sg_request *io, struct usb_device *dev,
 	if (!io || !dev || !sg
 			|| usb_pipecontrol(pipe)
 			|| usb_pipeisoc(pipe)
-			|| nents <= 0)
+			|| nents <= 0
+			|| nents >= UINT_MAX / sizeof(*io->urbs))
 		return -EINVAL;
 
 	spin_lock_init(&io->lock);
-- 
1.9.1

^ permalink raw reply	[flat|nested] 4+ messages in thread
[parent not found: <CAGoFzNevhCgsSqNc_Sga1Y9Xdo3WP+AnQPk9FY9Msx+PjLmUQA@mail.gmail.com>]
[parent not found: <CAGoFzNfFhxgFP7L9hL84qqASRGVtv5MYF8AtmvZs4sEBhEVzcg@mail.gmail.com>]

end of thread, other threads:[~2016-01-19 22:05 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2016-01-18 17:06 [PATCH] usb: fix potential integer overflow in usb_sg_init Insu Yun
2016-01-18 18:32 ` Alan Stern
     [not found] <CAGoFzNevhCgsSqNc_Sga1Y9Xdo3WP+AnQPk9FY9Msx+PjLmUQA@mail.gmail.com>
2016-01-19 14:57 ` Alan Stern
     [not found] <CAGoFzNfFhxgFP7L9hL84qqASRGVtv5MYF8AtmvZs4sEBhEVzcg@mail.gmail.com>
2016-01-19 22:04 ` Alan Stern

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox

all inboxes | Powered by JetHome®