Page MenuHomeFreeBSD

D23679.id69586.diff
No OneTemporary

D23679.id69586.diff

Index: sys/dev/pci/pci.c
===================================================================
--- sys/dev/pci/pci.c
+++ sys/dev/pci/pci.c
@@ -1102,16 +1102,16 @@
break;
}
remain |= byte2 << 8;
- if (remain > (0x7f*4 - vrs.off)) {
- state = -1;
- pci_printf(cfg,
- "invalid VPD data, remain %#x\n",
- remain);
- }
name = byte & 0x7f;
} else {
remain = byte & 0x7;
name = (byte >> 3) & 0xf;
+ }
+ if (vrs.off + remain - vrs.bytesinval > 0x8000) {
+ pci_printf(cfg,
+ "VPD data overflow, remain %#x\n", remain);
+ state = -1;
+ break;
}
switch (name) {
case 0x2: /* String */

File Metadata

Mime Type
text/plain
Expires
Wed, Mar 18, 5:28 AM (57 m, 17 s)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
29883838
Default Alt Text
D23679.id69586.diff (669 B)

Event Timeline