From: Jiri Slaby Date: Sat, 4 Sep 2010 12:32:25 +0000 (+0200) Subject: Staging: lirc, fix NULL dereference X-Git-Tag: upstream/snapshot3+hdmi~12602^2~3^2~714 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=cc92ac20496fa24209712ab561738f4f8b57336a;p=platform%2Fadaptation%2Frenesas_rcar%2Frenesas_kernel.git Staging: lirc, fix NULL dereference When 'context' allocation fails in imon_probe, we jump to unlock context->ctx_lock. This is wrong as context is NULL and the lock is not locked. Fix the labels. Signed-off-by: Jiri Slaby Cc: Jarod Wilson Cc: Mauro Carvalho Chehab Signed-off-by: Greg Kroah-Hartman --- diff --git a/drivers/staging/lirc/lirc_imon.c b/drivers/staging/lirc/lirc_imon.c index 818bec0..2661718 100644 --- a/drivers/staging/lirc/lirc_imon.c +++ b/drivers/staging/lirc/lirc_imon.c @@ -873,7 +873,7 @@ static int imon_probe(struct usb_interface *interface, if (lirc_minor < 0) { err("%s: lirc_register_driver failed", __func__); alloc_status = 7; - goto alloc_status_switch; + goto unlock; } else dev_info(dev, "Registered iMON driver " "(lirc minor: %d)\n", lirc_minor); @@ -929,8 +929,9 @@ static int imon_probe(struct usb_interface *interface, "usb<%d:%d> initialized\n", vendor, product, ifnum, usbdev->bus->busnum, usbdev->devnum); -alloc_status_switch: +unlock: mutex_unlock(&context->ctx_lock); +alloc_status_switch: switch (alloc_status) { case 7: