Do not write past the end of buffer.

svn path=/trunk/; revision=54028
This commit is contained in:
Dmitry Gorbachev 2011-10-06 19:59:20 +00:00
parent 59730dc09c
commit 9fc97e9f95

View file

@ -736,9 +736,9 @@ HalpDebugPciDumpBus(IN ULONG i,
VendorName += 7; VendorName += 7;
p = strchr(VendorName, '\r'); p = strchr(VendorName, '\r');
Length = p - VendorName; Length = p - VendorName;
if (Length > sizeof(bVendorName)) Length = sizeof(bVendorName); if (Length >= sizeof(bVendorName)) Length = sizeof(bVendorName) - 1;
strncpy(bVendorName, VendorName, Length); strncpy(bVendorName, VendorName, Length);
bVendorName[Length ] = '\0'; bVendorName[Length] = '\0';
/* Isolate the product name */ /* Isolate the product name */
sprintf(LookupString, "\t%04x", PciData->DeviceID); sprintf(LookupString, "\t%04x", PciData->DeviceID);
@ -749,7 +749,7 @@ HalpDebugPciDumpBus(IN ULONG i,
ProductName += 7; ProductName += 7;
p = strchr(ProductName, '\r'); p = strchr(ProductName, '\r');
Length = p - ProductName; Length = p - ProductName;
if (Length > sizeof(bProductName)) Length = sizeof(bProductName); if (Length >= sizeof(bProductName)) Length = sizeof(bProductName) - 1;
strncpy(bProductName, ProductName, Length); strncpy(bProductName, ProductName, Length);
bProductName[Length] = '\0'; bProductName[Length] = '\0';
@ -765,7 +765,7 @@ HalpDebugPciDumpBus(IN ULONG i,
SubVendorName += 13; SubVendorName += 13;
p = strchr(SubVendorName, '\r'); p = strchr(SubVendorName, '\r');
Length = p - SubVendorName; Length = p - SubVendorName;
if (Length > sizeof(bSubVendorName)) Length = sizeof(bSubVendorName); if (Length >= sizeof(bSubVendorName)) Length = sizeof(bSubVendorName) - 1;
strncpy(bSubVendorName, SubVendorName, Length); strncpy(bSubVendorName, SubVendorName, Length);
bSubVendorName[Length] = '\0'; bSubVendorName[Length] = '\0';
} }
@ -801,7 +801,7 @@ HalpDebugPciDumpBus(IN ULONG i,
PciData->u.type0.InterruptLine != 0 && PciData->u.type0.InterruptLine != 0 &&
PciData->u.type0.InterruptLine != 0xFF) DbgPrint(", IRQ %02d", PciData->u.type0.InterruptLine); PciData->u.type0.InterruptLine != 0xFF) DbgPrint(", IRQ %02d", PciData->u.type0.InterruptLine);
DbgPrint("\n"); DbgPrint("\n");
/* Scan addresses */ /* Scan addresses */
Size = 0; Size = 0;
for (b = 0; b < PCI_TYPE0_ADDRESSES; b++) for (b = 0; b < PCI_TYPE0_ADDRESSES; b++)
@ -926,7 +926,7 @@ HalpInitializePciBus(VOID)
{ {
/* Get the bus handler */ /* Get the bus handler */
BusHandler = HalHandlerForBus(PCIBus, i); BusHandler = HalHandlerForBus(PCIBus, i);
/* Loop every device */ /* Loop every device */
for (j = 0; j < 32; j++) for (j = 0; j < 32; j++)
{ {