]> git.baikalelectronics.ru Git - kernel.git/commit
usb: gadget: fix NULL pointer dereference
authorAndrzej Pietrasiewicz <andrzej.p@samsung.com>
Mon, 20 Jan 2014 07:33:50 +0000 (08:33 +0100)
committerFelipe Balbi <balbi@ti.com>
Thu, 20 Feb 2014 15:17:23 +0000 (09:17 -0600)
commita7dbc67ee8d2f00fcc0136a125092fa86b118efc
tree5e564e3f582d872a91433cc62dc1fa3ff8007cbd
parent1854fa47d42370f9e383678932e7eadbaf1d7bd2
usb: gadget: fix NULL pointer dereference

Fix possible NULL pointer dereference introduced in
commit 55d5023 (usb: f_fs: check quirk to pad epout
buf size when not aligned to maxpacketsize)

In cases we do wait with:

wait_event_interruptible(epfile->wait, (ep = epfile->ep));

for endpoint to be enabled, functionfs_bind() has not been called yet
and epfile->ffs->gadget is still NULL and the automatic variable 'gadget'
has been initialized with NULL at the point of its definition.
Later on it is used as a parameter to:

usb_ep_align_maybe(gadget, ep->ep, len)

which in turn dereferences it.

This patch fixes it by moving the actual assignment to the local 'gadget'
variable after the potential waiting has completed.

Signed-off-by: Andrzej Pietrasiewicz <andrzej.p@samsung.com>
Acked-by: Michal Nazarewicz <mina86@mina86.com>
Signed-off-by: Felipe Balbi <balbi@ti.com>
drivers/usb/gadget/f_fs.c