There is a bug in the acenic driver. The "name" field is too small.
It causes the memory overrun. This patch seems to fix the problem.
-- H.J. Lu (hjl@gnu.org)-- --- linux/drivers/net/acenic.h.orig Wed Nov 3 13:00:22 1999 +++ linux/drivers/net/acenic.h Wed Nov 3 13:02:34 1999 @@ -647,7 +647,7 @@ struct ace_private u8 pci_bus; u8 pci_dev_fun; #endif - char name[24]; + char name[48]; struct net_device_stats stats; }; --- linux/drivers/net/acenic.c.orig Wed Nov 3 13:02:40 1999 +++ linux/drivers/net/acenic.c Wed Nov 3 13:12:21 1999 @@ -289,34 +289,39 @@ __initfunc(int acenic_probe (struct devi switch(ap->vendor){ case PCI_VENDOR_ID_ALTEON: - sprintf(ap->name, "AceNIC Gigabit Ethernet"); + strncpy(ap->name, "AceNIC Gigabit Ethernet", sizeof (ap->name)); printk(KERN_INFO "%s: Alteon AceNIC ", dev->name); break; case PCI_VENDOR_ID_3COM: - sprintf(ap->name, "3Com 3C985 Gigabit Ethernet"); + strncpy(ap->name, "3Com 3C985 Gigabit Ethernet", + sizeof (ap->name)); printk(KERN_INFO "%s: 3Com 3C985 ", dev->name); break; case PCI_VENDOR_ID_NETGEAR: - sprintf(ap->name, "NetGear GA620 Gigabit Ethernet"); + strncpy(ap->name, "NetGear GA620 Gigabit Ethernet", + sizeof (ap->name)); printk(KERN_INFO "%s: NetGear GA620 ", dev->name); break; case PCI_VENDOR_ID_DEC: if (pdev->device == PCI_DEVICE_ID_FARALLON_PN9000SX) { - sprintf(ap->name, "Farallon PN9000-SX " - "Gigabit Ethernet"); + strncpy(ap->name, "Farallon PN9000-SX Gigabit Ethernet", + sizeof (ap->name)); printk(KERN_INFO "%s: Farallon PN9000-SX ", dev->name); break; } case PCI_VENDOR_ID_SGI: - sprintf(ap->name, "SGI AceNIC Gigabit Ethernet"); + strncpy(ap->name, "SGI AceNIC Gigabit Ethernet", + sizeof (ap->name)); printk(KERN_INFO "%s: SGI AceNIC ", dev->name); break; default: - sprintf(ap->name, "Unknown AceNIC based Gigabit Ethernet"); + strncpy(ap->name, "Unknown AceNIC based Gigabit Ethernet", + sizeof (ap->name)); printk(KERN_INFO "%s: Unknown AceNIC ", dev->name); break; } + ap->name [sizeof (ap->name) - 1] = '\0'; printk("Gigabit Ethernet at 0x%08lx, irq %i, PCI latency %i " "clks\n", pdev->base_address[0], dev->irq, pci_latency);- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.rutgers.edu Please read the FAQ at http://www.tux.org/lkml/