android_kernel_motorola_sm6225/drivers/usb/misc
Clemens Ladisch ac06c06770 USB: emi62: fix crash when trying to load EMI 6|2 firmware
While converting emi62 to use request_firmware(), the driver was also
changed to use the ihex helper functions.  However, this broke the loading
of the FPGA firmware because the code tries to access the addr field of
the EOF record which works with a plain array that has an empty last
record but not with the ihex helper functions where the end of the data is
signaled with a NULL record pointer, resulting in:

BUG: unable to handle kernel NULL pointer dereference at (null)
IP: [<f80d248c>] emi62_load_firmware+0x33c/0x740 [emi62]

This can be fixed by changing the loop condition to test the return value
of ihex_next_binrec() directly (like in emi26.c).

Signed-off-by: Clemens Ladisch <clemens@ladisch.de>
Reported-and-tested-by: Der Mickster <retroeffective@gmail.com>
Acked-by: David Woodhouse <David.Woodhouse@intel.com>
Cc: stable <stable@kernel.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2009-12-23 11:34:11 -08:00
..
sisusbvga headers: kref.h redux 2009-09-26 10:17:19 -07:00
adutux.c USB: misc/adutux, fix lock imbalance 2009-03-17 14:01:29 -07:00
appledisplay.c USB: remove err() macro from usb misc drivers 2008-10-17 14:41:13 -07:00
berry_charge.c USB: power availability check for berry_charge 2009-01-07 09:59:51 -08:00
cypress_cy7c63.c USB: remove err() macro from usb misc drivers 2008-10-17 14:41:13 -07:00
cytherm.c USB: remove err() macro from usb misc drivers 2008-10-17 14:41:13 -07:00
emi26.c USB: emi26: fix oops on load 2009-01-07 10:00:13 -08:00
emi62.c USB: emi62: fix crash when trying to load EMI 6|2 firmware 2009-12-23 11:34:11 -08:00
ftdi-elan.c USB: make transfer_buffer_lengths in struct urb field u32 2009-03-24 16:20:36 -07:00
idmouse.c USB: full power management support for the idmouse driver 2009-09-23 06:46:28 -07:00
iowarrior.c Driver-Core: extend devnode callbacks to provide permissions 2009-09-19 12:50:38 -07:00
isight_firmware.c isight_firmware: fix a leak and double kfree() 2008-08-12 16:07:28 -07:00
Kconfig USB: usbtest: no need for USB_DEVICEFS 2009-07-28 14:31:11 -07:00
ldusb.c USB: ldusb should signal an error in poll if the device is disconnected 2009-09-23 06:46:28 -07:00
legousbtower.c USB: legousbtower: make poll notice disconnect 2009-09-23 06:46:28 -07:00
Makefile USB: remove phidget drivers from kernel tree. 2009-03-24 16:20:37 -07:00
rio500.c const: constify remaining file_operations 2009-10-01 16:11:11 -07:00
rio500_usb.h
trancevibrator.c USB: remove info() macro from usb/misc drivers 2008-10-17 14:41:09 -07:00
usb_u132.h Merge master.kernel.org:/pub/scm/linux/kernel/git/gregkh/usb-2.6 2006-12-01 16:41:58 -08:00
usblcd.c USB: usblcd, fix memory leak 2009-10-09 13:52:06 -07:00
usbled.c USB: fix usbled disconnect read race #2 2007-11-28 13:58:33 -08:00
usbsevseg.c USB: full autosuspend and power management support for usbsevseg 2009-09-23 06:46:28 -07:00
usbtest.c usbtest: make module param pattern writeable 2009-12-11 11:55:22 -08:00
uss720.c USB: remove info() macro from usb/misc drivers 2008-10-17 14:41:09 -07:00
vstusb.c USB: misc/vstusb, fix lock imbalance 2009-03-17 14:01:29 -07:00