Messages in this thread | | | Date | Fri, 14 May 2004 15:15:20 -0700 | From | Andrew Morton <> | Subject | Re: [4KSTACK][2.6.6] Stack overflow in radeonfb |
| |
Jörn Engel <joern@wohnheim.fh-wedel.de> wrote: > > On Fri, 14 May 2004 11:49:23 +0200, Arjan van de Ven wrote: > > On Fri, May 14, 2004 at 11:47:39AM +0200, Andrew Morton wrote: > > > There's a `make buildcheck' target in -mm (from Arjan) into which we could > > > integrate such a tool. Although probably it should be a different make > > > target. > > > > I added it to buildcheck for now, based on Keith Owens' check-stack.sh > > script. I added a tiny bit of perl (shudder) to it to > > 1) Make it print in decimal not hex > > 2) Filter the stack users to users of 400 bytes and higher > > > > I arbitrarily used 400; that surely is debatable. > > Keith' script has the major disadvantage of not working on anything > but i386. Here is my old script that works on a few more.
That's nice and simple. All due respect to Keith, this is something which humans have a chance of understanding too ;)
I removed the `vmlinux FORCE' targets from the makefile - that was forcing a full rebuild after I'd just done one. Just let it check ./vmlinux and if it's not there, it errors out...
It doesn't do modules, and hence requires a prior allyesconfig. I think it would be better to do:
find . -name '*.o' | xargs objdump -d | perl scripts/checkstack.pl i386
but that produces slightly screwy output and, for some reason, duplicated output:
0x 387c zconf_fopen: sub $0x101c,%esp 0x 3c0 huft_build: sub $0x5ac,%esp 0x 0 huft_build: sub $0x5ac,%esp 0x 0 huft_build: sub $0x59c,%esp 0x d30 inflate_dynamic: sub $0x528,%esp 0x 10f0 inflate_dynamic: sub $0x528,%esp 0x c10 inflate_dynamic: sub $0x524,%esp 0x 23 zconfparse: sub $0x50c,%esp 3: 81 ec fc 04 00 00 sub $0x4fc,%esp yyparse: sub $0x4fc,%esp 0x f9c inflate_fixed: sub $0x490,%esp 0x bdc inflate_fixed: sub $0x490,%esp 0x abc inflate_fixed: sub $0x490,%esp 0x 3d54 conf_read: sub $0x41c,%esp 0x fca0 snd_pcm_hw_params_old_user: sub $0x358,%esp 0x fc28 snd_pcm_hw_refine_old_user: sub $0x358,%esp 0x 6c58 snd_pcm_hw_refine_old_user: sub $0x358,%esp 0x 10448 snd_pcm_hw_refine_old_user: sub $0x358,%esp 0x 104c0 snd_pcm_hw_params_old_user: sub $0x358,%esp 0x 54e0 snd_pcm_hw_params_old_user: sub $0x358,%esp 0x 5468 snd_pcm_hw_refine_old_user: sub $0x358,%esp 0x 6cd0 snd_pcm_hw_params_old_user: sub $0x358,%esp 0x 42db conf_write: sub $0x30c,%esp 0x c8 nlmclnt_proc: sub $0x280,%esp 0x 1b54 snd_pcm_oss_get_formats: sub $0x280,%esp 0x 1d074 snd_pcm_oss_get_formats: sub $0x280,%esp 0x 761c8 nlmclnt_proc: sub $0x280,%esp 0x 1c854 snd_pcm_oss_get_formats: sub $0x280,%esp 0x 4b8 nlmclnt_proc: sub $0x280,%esp 0x 1b54 snd_pcm_oss_get_formats: sub $0x280,%esp
You wanna take a look at that please?
- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| |