Re: [kallsyms] general protection fault: 0000 [#1] PREEMPT DEBUG_PAGEALLOC

From: Joe Mario
Date: Mon Nov 11 2013 - 08:27:37 EST


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

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/