Re: [PATCH 00/33] Compile-time stack metadata validation
From: Josh Poimboeuf <hidden>
Date: 2016-01-22 19:15:03
Also in:
kvm, linux-watchdog, lkml
On Fri, Jan 22, 2016 at 11:43:48AM -0600, Chris J Arges wrote:
On Thu, Jan 21, 2016 at 04:49:04PM -0600, Josh Poimboeuf wrote:quoted
This is v16 of the compile-time stack metadata validation patch set, along with proposed fixes for most of the warnings it found. It's based on the tip/master branch.Josh, Looks good, with my config [1] I do still get a few warnings building linux/linux-next. Here are the warnings: $ grep ^stacktool build.log | grep -v staging
Thanks for reporting these!
stacktool: arch/x86/kvm/vmx.o: vmx_handle_external_intr()+0x67: call without frame pointer save/setup
This can be fixed by setting the stack pointer as an output operand for the inline asm call in vmx_handle_external_intr(). Feel free to submit a patch, or I'll get around to it eventually.
stacktool: fs/reiserfs/namei.o: set_de_name_and_namelen()+0x9e: return without frame pointer restore stacktool: fs/reiserfs/namei.o: set_de_name_and_namelen()+0x89: duplicate frame pointer save stacktool: fs/reiserfs/namei.o: set_de_name_and_namelen()+0x8a: duplicate frame pointer setup stacktool: fs/reiserfs/namei.o: set_de_name_and_namelen()+0x9e: frame pointer state mismatch stacktool: fs/reiserfs/namei.o: set_de_name_and_namelen()+0x0: frame pointer state mismatch
These are false positives. Stacktool is confused by the use of a "noreturn" function which it doesn't know about (__reiserfs_panic). Unfortunately the only solution I currently have for dealing with global noreturn functions is to just hard-code a list of them. So the short term fix would be to add "__reiserfs_panic" to the global_noreturns list in tools/stacktool/builtin-check.c. I'm still trying to figure out a better way to deal with this type of issue, as it's a pain to have to keep a hard-coded list of noreturn functions. Unfortunately that info isn't available in the ELF.
stacktool: fs/reiserfs/ibalance.o: .text: unexpected end of section stacktool: fs/reiserfs/tail_conversion.o: .text: unexpected end of section
For some reason I'm not able to recreate these warnings... Can you share one of the .o files? -- Josh -- To unsubscribe from this list: send the line "unsubscribe linux-watchdog" in the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org More majordomo info at http://vger.kernel.org/majordomo-info.html