Closed shenki closed 6 years ago
Looks like there's two triggers here - handling an SMA response and handling a SVF response. I've only triggered the SVF case so far but I suspect they're both the same root cause: NCSI has a generic concept of filters which it uses for both MAC addresses and VLAN IDs, storing either kind of data in a u32 data[]
buffer. NCSI stores differently sized types in this buffer and allocates it accordingly - looks like it just gets the calculation slightly wrong and writes into unallocated memory just off the end of the buffer.
I've used this as a chance to finish off a refactor of the filtering code I already had going and so far it looks to avoid this error - patches to come.
Thanks @sammj !
e156398 v4.16-rc6-119-ge156398bfcad
from Joel's experimental 4.16 tree, on a qemu romulus machine. Also reproduces on Romulus hardware