Skip to contentSkip to conversation

usb: fix unterminated usn_device_id lists

PATCH In review Kees Cook 2 participants 6 messages Sep 13, 2007

Subsystems (4)
lore
Share & tools
lore

Kees Cook

author
#0 lore raw

PATCH 1/1 usb: fix unterminated usn_device_id lists

This patch against 2.6.23-rc6 fixes a unterminated list of USB device ids.

---
 linux-2.6.23-rc6/drivers/media/video/usbvision/usbvision-cards.c |    1 +
 1 file changed, 1 insertion(+)

---

drivers/media/video/usbvision/usbvision-cards.c +1 -0
diff -urp -x '*.o' linux-2.6.23-rc6~/drivers/media/video/usbvision/usbvision-cards.c linux-2.6.23-rc6/drivers/media/video/usbvision/usbvision-cards.c
@@ -1081,6 +1081,7 @@ struct usb_device_id usbvision_table [] 
 	{ USB_DEVICE(0x2304, 0x0301), .driver_info=PINNA_LINX_VD_IN_CAB_PAL },
 	{ USB_DEVICE(0x2304, 0x0419), .driver_info=PINNA_PCTV_BUNGEE_PAL_FM },
 	{ USB_DEVICE(0x2400, 0x4200), .driver_info=HPG_WINTV },
+	{ 0, },
 };
 
 MODULE_DEVICE_TABLE (usb, usbvision_table);
Signature · 1 line
Kees Cook
#1 lore raw
Quoted 11 lines · Kees Cook

This patch against 2.6.23-rc6 fixes a unterminated list of USB device ids.

---
 linux-2.6.23-rc6/drivers/media/video/usbvision/usbvision-cards.c |    1 +
 1 file changed, 1 insertion(+)

---
diff -urp -x '*.o' linux-2.6.23-rc6~/drivers/media/video/usbvision/usbvision-cards.c linux-2.6.23-rc6/drivers/media/video/usbvision/usbvision-cards.c

drivers/media/video/usbvision/usbvision-cards.c struct usb_device_id usbvision_table [] · line 1084

Quoted 4 lines
drivers/media/video/usbvision/usbvision-cards.c +1 -0
@@ -1081,6 +1081,7 @@ struct usb_device_id usbvision_table [] 
 	{ USB_DEVICE(0x2304, 0x0301), .driver_info=PINNA_LINX_VD_IN_CAB_PAL },
 	{ USB_DEVICE(0x2304, 0x0419), .driver_info=PINNA_PCTV_BUNGEE_PAL_FM },
 	{ USB_DEVICE(0x2400, 0x4200), .driver_info=HPG_WINTV },
+	{ 0, },

FWIW I (and several drivers) tend to prefer the more clean version,

	{ },

or even

	{ },	/* terminate list */

Regards,

Jeff

author
#2 lore raw

Hi,

Quoted 9 lines · Jeff Garzik

drivers/media/video/usbvision/usbvision-cards.c struct usb_device_id usbvision_table [] · line 1084

Quoted 1 line
drivers/media/video/usbvision/usbvision-cards.c +1 -0
+	{ 0, },

FWIW I (and several drivers) tend to prefer the more clean version,

	{ },

or even

	{ },	/* terminate list */

Ah, yes. I see that now in some of the other drivers. Should I re-send this patch (and/or the other PCI patches)?

Thanks,

-Kees

Signature · 1 line
Kees Cook
#3 lore raw
Quoted 6 lines · Kees Cook

Hi,

Quoted 3 lines · Jeff Garzik

drivers/media/video/usbvision/usbvision-cards.c struct usb_device_id usbvision_table [] · line 1084

Quoted 1 line
drivers/media/video/usbvision/usbvision-cards.c +1 -0
+	{ 0, },

FWIW I (and several drivers) tend to prefer the more clean version,

Quoted 8 lines
Quoted 5 lines
	{ },

or even

	{ },	/* terminate list */

Ah, yes. I see that now in some of the other drivers. Should I re-send this patch (and/or the other PCI patches)?

Can't hurt... but I cannot speak for other maintainers.

Jeff

author
#4 lore raw

PATCH v2 1/1 misc: fix unterminated *_device_id lists

Fixes drivers that do not correctly terminate their *_device_id lists. This results in garbage being spewed into modules.pcimap when the module happens to not have 28 NULL bytes following the table, and/or the last PCI ID is actually truncated from the table when calculating the modules.alias PCI aliases, causing those unfortunate device IDs to not auto-load.

---
Re-send, using recommended list termination code-style. Diff is against 2.6.23-rc6.

 linux-2.6.23-rc6/drivers/char/ipmi/ipmi_si_intf.c                |    3 ++-
 linux-2.6.23-rc6/drivers/media/video/usbvision/usbvision-cards.c |    1 +
 linux-2.6.23-rc6/drivers/mtd/nand/cafe_nand.c                    |    3 ++-
 3 files changed, 5 insertions(+), 2 deletions(-)

---

drivers/char/ipmi/ipmi_si_intf.c +2 -1
diff -uNrp linux-2.6.23-rc6~/drivers/char/ipmi/ipmi_si_intf.c linux-2.6.23-rc6/drivers/char/ipmi/ipmi_si_intf.c
@@ -2215,7 +2215,8 @@ static int ipmi_pci_resume(struct pci_de
 
 static struct pci_device_id ipmi_pci_devices[] = {
 	{ PCI_DEVICE(PCI_HP_VENDOR_ID, PCI_MMC_DEVICE_ID) },
-	{ PCI_DEVICE_CLASS(PCI_ERMC_CLASSCODE, PCI_ERMC_CLASSCODE_MASK) }
+	{ PCI_DEVICE_CLASS(PCI_ERMC_CLASSCODE, PCI_ERMC_CLASSCODE_MASK) },
+	{ },    /* terminate list */
 };
 MODULE_DEVICE_TABLE(pci, ipmi_pci_devices);
 
drivers/mtd/nand/cafe_nand.c +2 -1
diff -uNrp linux-2.6.23-rc6~/drivers/mtd/nand/cafe_nand.c linux-2.6.23-rc6/drivers/mtd/nand/cafe_nand.c
@@ -816,7 +816,8 @@ static void __devexit cafe_nand_remove(s
 }
 
 static struct pci_device_id cafe_nand_tbl[] = {
-	{ 0x11ab, 0x4100, PCI_ANY_ID, PCI_ANY_ID, PCI_CLASS_MEMORY_FLASH << 8, 0xFFFF0 }
+	{ 0x11ab, 0x4100, PCI_ANY_ID, PCI_ANY_ID, PCI_CLASS_MEMORY_FLASH << 8, 0xFFFF0 },
+	{ },    /* terminate list */
 };
 
 MODULE_DEVICE_TABLE(pci, cafe_nand_tbl);
drivers/media/video/usbvision/usbvision-cards.c +1 -0
diff -urp -x '*.o' linux-2.6.23-rc6~/drivers/media/video/usbvision/usbvision-cards.c linux-2.6.23-rc6/drivers/media/video/usbvision/usbvision-cards.c
@@ -1081,6 +1081,7 @@ struct usb_device_id usbvision_table [] 
 	{ USB_DEVICE(0x2304, 0x0301), .driver_info=PINNA_LINX_VD_IN_CAB_PAL },
 	{ USB_DEVICE(0x2304, 0x0419), .driver_info=PINNA_PCTV_BUNGEE_PAL_FM },
 	{ USB_DEVICE(0x2400, 0x4200), .driver_info=HPG_WINTV },
+	{ },    /* terminate list */
 };
 
 MODULE_DEVICE_TABLE (usb, usbvision_table);
Signature · 1 line
Kees Cook
#5 lore raw

Re: [PATCHv2] misc: fix unterminated *_device_id lists

Quoted 10 lines · Kees Cook

Fixes drivers that do not correctly terminate their *_device_id lists. This results in garbage being spewed into modules.pcimap when the module happens to not have 28 NULL bytes following the table, and/or the last PCI ID is actually truncated from the table when calculating the modules.alias PCI aliases, causing those unfortunate device IDs to not auto-load.

---
Re-send, using recommended list termination code-style. Diff is against 2.6.23-rc6.

ACK