Messages in this thread | | | Date | Mon, 11 Nov 2013 08:27:09 -0500 | From | Joe Mario <> | Subject | Re: [kallsyms] general protection fault: 0000 [#1] PREEMPT DEBUG_PAGEALLOC |
| |
On 11/11/2013 07:07 AM, Michal Marek wrote: > On 10.11.2013 16:23, Andi Kleen wrote: >> On Sun, Nov 10, 2013 at 05:40:05PM +0800, Fengguang Wu wrote: >>> Hi Joe, >>> >>> FYI. Here is another bisect result. >> >> I bet it's that strncpy() in kallsyms.c and someone passing in a too >> short buffer on a 32bit kernel. >> >> We should really kill strncpy(), it's just evil. > > I'm testing a patch for include/linux/pci.h to use line numbers instead > of the PCI ID macros to declare the __pci_fixup_* symbols. If that > works, we can revert the limit back to 128 and only keep the check in > kallsyms.c. > > Michal
Michal: That would be great.
I found six locations which were still using an array size hardwired to "128" instead of KSYM_NAME_LEN. But none of them were related to the crash Fengguang Wu reported. We built a 32-bit kernel from his config (with a few issues) but were unable to reproduce the crash. Still trying.
Whatever happens, I agree the check in kallsyms.c for kernel symbols whose length exceeds the buffer size, needs to be in place.
Joe
| |