Hi!

----

Below are several valgrind hits which likely indicate serious bugs. I
don't have time to go into the details now so I'm shoving this as-is
on the list.

Steps to reproduce:
-- snip --
1. Build ksh93 with some hacks to make life easier for "valgrind":
$ (CCFLAGS='-g' CC='gcc -std=gnu99 -D_AST_std_malloc=1 -DSHOPT_SYSRC
-D_map_libc=1 -g' ./bin/package make) 2>&1 | tee -a buildlog.log
2. Run valgrind:
$ (SHELL=$PWD/arch/linux.i386-64/bin/ksh ; LC_ALL=en_US.UTF-8
LANG=en_US.UTF-8 VMALLOC_OPTIONS="abort" valgrind --track-origins=yes
--read-var-info=yes $SHELL src/cmd/ksh93/tests/nameref.sh)
-- snip --

-- snip --
==8787== For counts of detected and suppressed errors, rerun with: -v
==8787== ERROR SUMMARY: 1 errors from 1 contexts (suppressed: 6 from 6)
==8761== Invalid read of size 8
==8761==    at 0x4E00D3: dttree (dttree.c:439)
==8761==    by 0x46D90F: sh_exec (xec.c:2737)
==8761==    by 0x408675: exfile (main.c:599)
==8761==    by 0x407ACB: sh_main (main.c:373)
==8761==    by 0x406E28: main (pmain.c:45)
==8761==  Address 0x5e09020 is 16 bytes inside a block of size 70 free'd
==8761==    at 0x4C2892E: free (in
/usr/lib64/valgrind/vgpreload_memcheck-amd64-linux.so)
==8761==    by 0x5044E3: _ast_free (malloc.c:1036)
==8761==    by 0x44686D: nv_delete (name.c:1282)
==8761==    by 0x44EED0: outval (nvtree.c:759)
==8761==    by 0x44FACA: genvalue (nvtree.c:930)
==8761==    by 0x45047C: walk_tree (nvtree.c:1073)
==8761==    by 0x45084F: put_tree (nvtree.c:1140)
==8761==    by 0x4091D6: nv_putv (nvdisc.c:151)
==8761==    by 0x449C43: _nv_unset (name.c:2522)
==8761==    by 0x46D92A: sh_exec (xec.c:2738)
==8761==    by 0x408675: exfile (main.c:599)
==8761==    by 0x407ACB: sh_main (main.c:373)
==8761==
==8761== Invalid read of size 2
==8761==    at 0x449975: _nv_unset (name.c:2468)
==8761==    by 0x46D92A: sh_exec (xec.c:2738)
==8761==    by 0x408675: exfile (main.c:599)
==8761==    by 0x407ACB: sh_main (main.c:373)
==8761==    by 0x406E28: main (pmain.c:45)
==8761==  Address 0x5e09028 is 24 bytes inside a block of size 70 free'd
==8761==    at 0x4C2892E: free (in
/usr/lib64/valgrind/vgpreload_memcheck-amd64-linux.so)
==8761==    by 0x5044E3: _ast_free (malloc.c:1036)
==8761==    by 0x44686D: nv_delete (name.c:1282)
==8761==    by 0x44EED0: outval (nvtree.c:759)
==8761==    by 0x44FACA: genvalue (nvtree.c:930)
==8761==    by 0x45047C: walk_tree (nvtree.c:1073)
==8761==    by 0x45084F: put_tree (nvtree.c:1140)
==8761==    by 0x4091D6: nv_putv (nvdisc.c:151)
==8761==    by 0x449C43: _nv_unset (name.c:2522)
==8761==    by 0x46D92A: sh_exec (xec.c:2738)
==8761==    by 0x408675: exfile (main.c:599)
==8761==    by 0x407ACB: sh_main (main.c:373)
==8761==
==8761== Invalid read of size 2
==8761==    at 0x449BF3: _nv_unset (name.c:2515)
==8761==    by 0x46D92A: sh_exec (xec.c:2738)
==8761==    by 0x408675: exfile (main.c:599)
==8761==    by 0x407ACB: sh_main (main.c:373)
==8761==    by 0x406E28: main (pmain.c:45)
==8761==  Address 0x5e09028 is 24 bytes inside a block of size 70 free'd
==8761==    at 0x4C2892E: free (in
/usr/lib64/valgrind/vgpreload_memcheck-amd64-linux.so)
==8761==    by 0x5044E3: _ast_free (malloc.c:1036)
==8761==    by 0x44686D: nv_delete (name.c:1282)
==8761==    by 0x44EED0: outval (nvtree.c:759)
==8761==    by 0x44FACA: genvalue (nvtree.c:930)
==8761==    by 0x45047C: walk_tree (nvtree.c:1073)
==8761==    by 0x45084F: put_tree (nvtree.c:1140)
==8761==    by 0x4091D6: nv_putv (nvdisc.c:151)
==8761==    by 0x449C43: _nv_unset (name.c:2522)
==8761==    by 0x46D92A: sh_exec (xec.c:2738)
==8761==    by 0x408675: exfile (main.c:599)
==8761==    by 0x407ACB: sh_main (main.c:373)
==8761==
==8761== Invalid write of size 2
==8761==    at 0x449BF9: _nv_unset (name.c:2515)
==8761==    by 0x46D92A: sh_exec (xec.c:2738)
==8761==    by 0x408675: exfile (main.c:599)
==8761==    by 0x407ACB: sh_main (main.c:373)
==8761==    by 0x406E28: main (pmain.c:45)
==8761==  Address 0x5e09028 is 24 bytes inside a block of size 70 free'd
==8761==    at 0x4C2892E: free (in
/usr/lib64/valgrind/vgpreload_memcheck-amd64-linux.so)
==8761==    by 0x5044E3: _ast_free (malloc.c:1036)
==8761==    by 0x44686D: nv_delete (name.c:1282)
==8761==    by 0x44EED0: outval (nvtree.c:759)
==8761==    by 0x44FACA: genvalue (nvtree.c:930)
==8761==    by 0x45047C: walk_tree (nvtree.c:1073)
==8761==    by 0x45084F: put_tree (nvtree.c:1140)
==8761==    by 0x4091D6: nv_putv (nvdisc.c:151)
==8761==    by 0x449C43: _nv_unset (name.c:2522)
==8761==    by 0x46D92A: sh_exec (xec.c:2738)
==8761==    by 0x408675: exfile (main.c:599)
==8761==    by 0x407ACB: sh_main (main.c:373)
==8761==
==8761== Invalid read of size 8
==8761==    at 0x449BFD: _nv_unset (name.c:2516)
==8761==    by 0x46D92A: sh_exec (xec.c:2738)
==8761==    by 0x408675: exfile (main.c:599)
==8761==    by 0x407ACB: sh_main (main.c:373)
==8761==    by 0x406E28: main (pmain.c:45)
==8761==  Address 0x5e09030 is 32 bytes inside a block of size 70 free'd
==8761==    at 0x4C2892E: free (in
/usr/lib64/valgrind/vgpreload_memcheck-amd64-linux.so)
==8761==    by 0x5044E3: _ast_free (malloc.c:1036)
==8761==    by 0x44686D: nv_delete (name.c:1282)
==8761==    by 0x44EED0: outval (nvtree.c:759)
==8761==    by 0x44FACA: genvalue (nvtree.c:930)
==8761==    by 0x45047C: walk_tree (nvtree.c:1073)
==8761==    by 0x45084F: put_tree (nvtree.c:1140)
==8761==    by 0x4091D6: nv_putv (nvdisc.c:151)
==8761==    by 0x449C43: _nv_unset (name.c:2522)
==8761==    by 0x46D92A: sh_exec (xec.c:2738)
==8761==    by 0x408675: exfile (main.c:599)
==8761==    by 0x407ACB: sh_main (main.c:373)
==8761==
==8761== Invalid read of size 2
==8761==    at 0x449C57: _nv_unset (name.c:2529)
==8761==    by 0x46D92A: sh_exec (xec.c:2738)
==8761==    by 0x408675: exfile (main.c:599)
==8761==    by 0x407ACB: sh_main (main.c:373)
==8761==    by 0x406E28: main (pmain.c:45)
==8761==  Address 0x5e09028 is 24 bytes inside a block of size 70 free'd
==8761==    at 0x4C2892E: free (in
/usr/lib64/valgrind/vgpreload_memcheck-amd64-linux.so)
==8761==    by 0x5044E3: _ast_free (malloc.c:1036)
==8761==    by 0x44686D: nv_delete (name.c:1282)
==8761==    by 0x44EED0: outval (nvtree.c:759)
==8761==    by 0x44FACA: genvalue (nvtree.c:930)
==8761==    by 0x45047C: walk_tree (nvtree.c:1073)
==8761==    by 0x45084F: put_tree (nvtree.c:1140)
==8761==    by 0x4091D6: nv_putv (nvdisc.c:151)
==8761==    by 0x449C43: _nv_unset (name.c:2522)
==8761==    by 0x46D92A: sh_exec (xec.c:2738)
==8761==    by 0x408675: exfile (main.c:599)
==8761==    by 0x407ACB: sh_main (main.c:373)
==8761==
==8761== Invalid read of size 8
==8761==    at 0x449C8B: _nv_unset (name.c:2535)
==8761==    by 0x46D92A: sh_exec (xec.c:2738)
==8761==    by 0x408675: exfile (main.c:599)
==8761==    by 0x407ACB: sh_main (main.c:373)
==8761==    by 0x406E28: main (pmain.c:45)
==8761==  Address 0x5e09038 is 40 bytes inside a block of size 70 free'd
==8761==    at 0x4C2892E: free (in
/usr/lib64/valgrind/vgpreload_memcheck-amd64-linux.so)
==8761==    by 0x5044E3: _ast_free (malloc.c:1036)
==8761==    by 0x44686D: nv_delete (name.c:1282)
==8761==    by 0x44EED0: outval (nvtree.c:759)
==8761==    by 0x44FACA: genvalue (nvtree.c:930)
==8761==    by 0x45047C: walk_tree (nvtree.c:1073)
==8761==    by 0x45084F: put_tree (nvtree.c:1140)
==8761==    by 0x4091D6: nv_putv (nvdisc.c:151)
==8761==    by 0x449C43: _nv_unset (name.c:2522)
==8761==    by 0x46D92A: sh_exec (xec.c:2738)
==8761==    by 0x408675: exfile (main.c:599)
==8761==    by 0x407ACB: sh_main (main.c:373)
==8761==
==8761== Invalid read of size 2
==8761==    at 0x449CCD: _nv_unset (name.c:2540)
==8761==    by 0x46D92A: sh_exec (xec.c:2738)
==8761==    by 0x408675: exfile (main.c:599)
==8761==    by 0x407ACB: sh_main (main.c:373)
==8761==    by 0x406E28: main (pmain.c:45)
==8761==  Address 0x5e09028 is 24 bytes inside a block of size 70 free'd
==8761==    at 0x4C2892E: free (in
/usr/lib64/valgrind/vgpreload_memcheck-amd64-linux.so)
==8761==    by 0x5044E3: _ast_free (malloc.c:1036)
==8761==    by 0x44686D: nv_delete (name.c:1282)
==8761==    by 0x44EED0: outval (nvtree.c:759)
==8761==    by 0x44FACA: genvalue (nvtree.c:930)
==8761==    by 0x45047C: walk_tree (nvtree.c:1073)
==8761==    by 0x45084F: put_tree (nvtree.c:1140)
==8761==    by 0x4091D6: nv_putv (nvdisc.c:151)
==8761==    by 0x449C43: _nv_unset (name.c:2522)
==8761==    by 0x46D92A: sh_exec (xec.c:2738)
==8761==    by 0x408675: exfile (main.c:599)
==8761==    by 0x407ACB: sh_main (main.c:373)
==8761==
==8761== Invalid read of size 8
==8761==    at 0x449D6F: _nv_unset (name.c:2553)
==8761==    by 0x46D92A: sh_exec (xec.c:2738)
==8761==    by 0x408675: exfile (main.c:599)
==8761==    by 0x407ACB: sh_main (main.c:373)
==8761==    by 0x406E28: main (pmain.c:45)
==8761==  Address 0x5e09038 is 40 bytes inside a block of size 70 free'd
==8761==    at 0x4C2892E: free (in
/usr/lib64/valgrind/vgpreload_memcheck-amd64-linux.so)
==8761==    by 0x5044E3: _ast_free (malloc.c:1036)
==8761==    by 0x44686D: nv_delete (name.c:1282)
==8761==    by 0x44EED0: outval (nvtree.c:759)
==8761==    by 0x44FACA: genvalue (nvtree.c:930)
==8761==    by 0x45047C: walk_tree (nvtree.c:1073)
==8761==    by 0x45084F: put_tree (nvtree.c:1140)
==8761==    by 0x4091D6: nv_putv (nvdisc.c:151)
==8761==    by 0x449C43: _nv_unset (name.c:2522)
==8761==    by 0x46D92A: sh_exec (xec.c:2738)
==8761==    by 0x408675: exfile (main.c:599)
==8761==    by 0x407ACB: sh_main (main.c:373)
==8761==
==8761== Invalid read of size 2
==8761==    at 0x449DB7: _nv_unset (name.c:2560)
==8761==    by 0x46D92A: sh_exec (xec.c:2738)
==8761==    by 0x408675: exfile (main.c:599)
==8761==    by 0x407ACB: sh_main (main.c:373)
==8761==    by 0x406E28: main (pmain.c:45)
==8761==  Address 0x5e09028 is 24 bytes inside a block of size 70 free'd
==8761==    at 0x4C2892E: free (in
/usr/lib64/valgrind/vgpreload_memcheck-amd64-linux.so)
==8761==    by 0x5044E3: _ast_free (malloc.c:1036)
==8761==    by 0x44686D: nv_delete (name.c:1282)
==8761==    by 0x44EED0: outval (nvtree.c:759)
==8761==    by 0x44FACA: genvalue (nvtree.c:930)
==8761==    by 0x45047C: walk_tree (nvtree.c:1073)
==8761==    by 0x45084F: put_tree (nvtree.c:1140)
==8761==    by 0x4091D6: nv_putv (nvdisc.c:151)
==8761==    by 0x449C43: _nv_unset (name.c:2522)
==8761==    by 0x46D92A: sh_exec (xec.c:2738)
==8761==    by 0x408675: exfile (main.c:599)
==8761==    by 0x407ACB: sh_main (main.c:373)
==8761==
==8761== Invalid write of size 4
==8761==    at 0x449DD8: _nv_unset (name.c:2562)
==8761==    by 0x46D92A: sh_exec (xec.c:2738)
==8761==    by 0x408675: exfile (main.c:599)
==8761==    by 0x407ACB: sh_main (main.c:373)
==8761==    by 0x406E28: main (pmain.c:45)
==8761==  Address 0x5e0902c is 28 bytes inside a block of size 70 free'd
==8761==    at 0x4C2892E: free (in
/usr/lib64/valgrind/vgpreload_memcheck-amd64-linux.so)
==8761==    by 0x5044E3: _ast_free (malloc.c:1036)
==8761==    by 0x44686D: nv_delete (name.c:1282)
==8761==    by 0x44EED0: outval (nvtree.c:759)
==8761==    by 0x44FACA: genvalue (nvtree.c:930)
==8761==    by 0x45047C: walk_tree (nvtree.c:1073)
==8761==    by 0x45084F: put_tree (nvtree.c:1140)
==8761==    by 0x4091D6: nv_putv (nvdisc.c:151)
==8761==    by 0x449C43: _nv_unset (name.c:2522)
==8761==    by 0x46D92A: sh_exec (xec.c:2738)
==8761==    by 0x408675: exfile (main.c:599)
==8761==    by 0x407ACB: sh_main (main.c:373)
==8761==
==8761== Invalid read of size 2
==8761==    at 0x449DDF: _nv_unset (name.c:2563)
==8761==    by 0x46D92A: sh_exec (xec.c:2738)
==8761==    by 0x408675: exfile (main.c:599)
==8761==    by 0x407ACB: sh_main (main.c:373)
==8761==    by 0x406E28: main (pmain.c:45)
==8761==  Address 0x5e09028 is 24 bytes inside a block of size 70 free'd
==8761==    at 0x4C2892E: free (in
/usr/lib64/valgrind/vgpreload_memcheck-amd64-linux.so)
==8761==    by 0x5044E3: _ast_free (malloc.c:1036)
==8761==    by 0x44686D: nv_delete (name.c:1282)
==8761==    by 0x44EED0: outval (nvtree.c:759)
==8761==    by 0x44FACA: genvalue (nvtree.c:930)
==8761==    by 0x45047C: walk_tree (nvtree.c:1073)
==8761==    by 0x45084F: put_tree (nvtree.c:1140)
==8761==    by 0x4091D6: nv_putv (nvdisc.c:151)
==8761==    by 0x449C43: _nv_unset (name.c:2522)
==8761==    by 0x46D92A: sh_exec (xec.c:2738)
==8761==    by 0x408675: exfile (main.c:599)
==8761==    by 0x407ACB: sh_main (main.c:373)
==8761==
==8761== Invalid read of size 2
==8761==    at 0x449DFF: _nv_unset (name.c:2565)
==8761==    by 0x46D92A: sh_exec (xec.c:2738)
==8761==    by 0x408675: exfile (main.c:599)
==8761==    by 0x407ACB: sh_main (main.c:373)
==8761==    by 0x406E28: main (pmain.c:45)
==8761==  Address 0x5e09028 is 24 bytes inside a block of size 70 free'd
==8761==    at 0x4C2892E: free (in
/usr/lib64/valgrind/vgpreload_memcheck-amd64-linux.so)
==8761==    by 0x5044E3: _ast_free (malloc.c:1036)
==8761==    by 0x44686D: nv_delete (name.c:1282)
==8761==    by 0x44EED0: outval (nvtree.c:759)
==8761==    by 0x44FACA: genvalue (nvtree.c:930)
==8761==    by 0x45047C: walk_tree (nvtree.c:1073)
==8761==    by 0x45084F: put_tree (nvtree.c:1140)
==8761==    by 0x4091D6: nv_putv (nvdisc.c:151)
==8761==    by 0x449C43: _nv_unset (name.c:2522)
==8761==    by 0x46D92A: sh_exec (xec.c:2738)
==8761==    by 0x408675: exfile (main.c:599)
==8761==    by 0x407ACB: sh_main (main.c:373)
==8761==
==8761== Invalid write of size 8
==8761==    at 0x449E50: _nv_unset (name.c:2568)
==8761==    by 0x46D92A: sh_exec (xec.c:2738)
==8761==    by 0x408675: exfile (main.c:599)
==8761==    by 0x407ACB: sh_main (main.c:373)
==8761==    by 0x406E28: main (pmain.c:45)
==8761==  Address 0x5e09040 is 48 bytes inside a block of size 70 free'd
==8761==    at 0x4C2892E: free (in
/usr/lib64/valgrind/vgpreload_memcheck-amd64-linux.so)
==8761==    by 0x5044E3: _ast_free (malloc.c:1036)
==8761==    by 0x44686D: nv_delete (name.c:1282)
==8761==    by 0x44EED0: outval (nvtree.c:759)
==8761==    by 0x44FACA: genvalue (nvtree.c:930)
==8761==    by 0x45047C: walk_tree (nvtree.c:1073)
==8761==    by 0x45084F: put_tree (nvtree.c:1140)
==8761==    by 0x4091D6: nv_putv (nvdisc.c:151)
==8761==    by 0x449C43: _nv_unset (name.c:2522)
==8761==    by 0x46D92A: sh_exec (xec.c:2738)
==8761==    by 0x408675: exfile (main.c:599)
==8761==    by 0x407ACB: sh_main (main.c:373)
==8761==
==8761== Invalid write of size 2
==8761==    at 0x449E58: _nv_unset (name.c:2569)
==8761==    by 0x46D92A: sh_exec (xec.c:2738)
==8761==    by 0x408675: exfile (main.c:599)
==8761==    by 0x407ACB: sh_main (main.c:373)
==8761==    by 0x406E28: main (pmain.c:45)
==8761==  Address 0x5e09028 is 24 bytes inside a block of size 70 free'd
==8761==    at 0x4C2892E: free (in
/usr/lib64/valgrind/vgpreload_memcheck-amd64-linux.so)
==8761==    by 0x5044E3: _ast_free (malloc.c:1036)
==8761==    by 0x44686D: nv_delete (name.c:1282)
==8761==    by 0x44EED0: outval (nvtree.c:759)
==8761==    by 0x44FACA: genvalue (nvtree.c:930)
==8761==    by 0x45047C: walk_tree (nvtree.c:1073)
==8761==    by 0x45084F: put_tree (nvtree.c:1140)
==8761==    by 0x4091D6: nv_putv (nvdisc.c:151)
==8761==    by 0x449C43: _nv_unset (name.c:2522)
==8761==    by 0x46D92A: sh_exec (xec.c:2738)
==8761==    by 0x408675: exfile (main.c:599)
==8761==    by 0x407ACB: sh_main (main.c:373)
==8761==
==8761== Invalid read of size 8
==8761==    at 0x4E00D3: dttree (dttree.c:439)
==8761==    by 0x446834: nv_delete (name.c:1279)
==8761==    by 0x46D94C: sh_exec (xec.c:2739)
==8761==    by 0x408675: exfile (main.c:599)
==8761==    by 0x407ACB: sh_main (main.c:373)
==8761==    by 0x406E28: main (pmain.c:45)
==8761==  Address 0x5e09020 is 16 bytes inside a block of size 70 free'd
==8761==    at 0x4C2892E: free (in
/usr/lib64/valgrind/vgpreload_memcheck-amd64-linux.so)
==8761==    by 0x5044E3: _ast_free (malloc.c:1036)
==8761==    by 0x44686D: nv_delete (name.c:1282)
==8761==    by 0x44EED0: outval (nvtree.c:759)
==8761==    by 0x44FACA: genvalue (nvtree.c:930)
==8761==    by 0x45047C: walk_tree (nvtree.c:1073)
==8761==    by 0x45084F: put_tree (nvtree.c:1140)
==8761==    by 0x4091D6: nv_putv (nvdisc.c:151)
==8761==    by 0x449C43: _nv_unset (name.c:2522)
==8761==    by 0x46D92A: sh_exec (xec.c:2738)
==8761==    by 0x408675: exfile (main.c:599)
==8761==    by 0x407ACB: sh_main (main.c:373)
-- snip --

----

Bye,
Roland

-- 
  __ .  . __
 (o.\ \/ /.o) [email protected]
  \__\/\/__/  MPEG specialist, C&&JAVA&&Sun&&Unix programmer
  /O /==\ O\  TEL +49 641 3992797
 (;O/ \/ \O;)

_______________________________________________
ast-developers mailing list
[email protected]
https://mailman.research.att.com/mailman/listinfo/ast-developers

Reply via email to