wmc and ElectricFence
Sylvain Petreolle
spetreolle at yahoo.fr
Wed Dec 18 06:30:19 CST 2002
seems like I will have a look on valgrind... it gives more information.
--- Dan Kegel <dank at kegel.com> a écrit : > Sure enough, valgrind finds
something to complain about:
>
> $ cd dlls/kernel
> $ make messages/winerr_enu.mc.rc
> LD_LIBRARY_PATH="../../library:../../unicode:$LD_LIBRARY_PATH"
> valgrind ../../tools/wmc/wmc -i -U -H
> /dev/null -o messages/winerr_enu.mc.rc messages/winerr_enu.mc
> ...
> ==7935== Invalid read of size 4
> ==7935== at 0x804B7A4: yyparse (./mcy.y:232)
> ==7935== by 0x804A4B3: main (wmc.c:256)
> ==7935== by 0x420158D3: __libc_start_main (in
> /lib/i686/libc-2.2.93.so)
> ==7935== by 0x8048E50: (within
> /home/dank/wine-20021125/tools/wmc/wmc)
> ==7935== Address 0x4106E5E4 is 8 bytes inside a block of size 24
> free'd
> ==7935== at 0x4015D715: free (vg_clientfuncs.c:182)
> ==7935== by 0x804B79A: yyparse (./mcy.y:231)
> ==7935== by 0x804A4B3: main (wmc.c:256)
> ==7935== by 0x420158D3: __libc_start_main (in
> /lib/i686/libc-2.2.93.so)
>
> Recompiling wmc with -O0 and rerunning, I get
> ==7970== Invalid read of size 4
> ==7970== at 0x804C73E: yyparse (./mcy.y:232)
> ==7970== by 0x804AA3B: main (wmc.c:256)
> ==7970== by 0x420158D3: __libc_start_main (in
> /lib/i686/libc-2.2.93.so)
> ==7970== by 0x8048D6C: (within
> /home/dank/wine-20021125/tools/wmc/wmc)
> ==7970== Address 0x4106E5E4 is 8 bytes inside a block of size 24
> free'd
> ==7970== at 0x4015D715: free (vg_clientfuncs.c:182)
> ==7970== by 0x804D2F4: do_add_token (./mcy.y:434)
> ==7970== by 0x804C731: yyparse (./mcy.y:231)
> ==7970== by 0x804AA3B: main (wmc.c:256)
>
> Looking at y.tab.c, I see the bug is that do_add_token
> sometimes frees its 2nd argument, which trips up the
> following line sometimes. Here's the sequence that crashed:
>
> do_add_token(tok_language, yyvsp[-6].tok, "language");
> if(!find_language(yyvsp[-6].tok->token) &&
> !find_cpxlat(yyvsp[-6].tok->token))
>
> These come from mcy.y:
>
> do_add_token(tok_language, $1, "language");
> if(!find_language($1->token) && !find_cpxlat($1->token))
>
> Can someone who knows wmc have a look?
> - Dan
>
=====
Sylvain Petreolle
spetreolle at users.sourceforge.net
Fight against Spam ! http://www.euro.cauce.org/en/index.html
ICQ #170597259
"Don't think you are. Know you are." Morpheus in Matrix, chapter 15.
___________________________________________________________
Do You Yahoo!? -- Une adresse @yahoo.fr gratuite et en français !
Yahoo! Mail : http://fr.mail.yahoo.com
More information about the wine-devel
mailing list