Skip to contentSkip to conversation

drivers/usb/serial/mos7840.c: check kmalloc() return value.

PATCH In review Amit Choudhary 2 participants 2 messages Mar 9, 2007

Subsystems (2)
lore
Share & tools
lore
#0 lore raw

PATCH 1/1 drivers/usb/serial/mos7840.c: check kmalloc() return value.

Description: Check the return value of kmalloc() in function mos7840_get_reg(), in file drivers/usb/serial/mos7840.c.

drivers/usb/serial/mos7840.c +8 -0
index 021be39..91d474b 100644
@@ -475,6 +475,14 @@ static int mos7840_get_reg(struct moschi
 	int ret = 0;
 	buffer = (__u8 *) mcs->ctrl_buf;
 
+	/* The memory for ctrl_buf is allocated in
+	 * mos7840_startup(), but it is not checked if
+	 * kmalloc failed. So, mcs->ctrl_buf might be NULL.
+	 * So, it should be checked here.
+	 */
+	if (!buffer)
+		return -ENOMEM;
+
 //      dr=(struct usb_ctrlrequest *)(buffer);
 	dr = (void *)(buffer + 2);
 	dr->bRequestType = MCS_RD_RTYPE;
#1 lore raw

Am Freitag, 9. März 2007 08:18 schrieb Amit Choudhary:

Quoted 1 line

Description: Check the return value of kmalloc() in function mos7840_get_reg(), in file drivers/usb/serial/mos7840.c.

No, this is wrong. You must catch this at the source. The driver cannot function if this function always returns -ENOMEM. It makes no sense to start up the device under these circumstances.

Regards
Oliver