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
