Hi! ----
I found a couple of valgrind hits when running the "glob.sh" test from ast-ksh.2012-05-04 (I don't have time to digging so I dump it here so it doesn't get lost): Steps to reproduce: 1. Build ksh93: $ (CCFLAGS='-g' CC='gcc -std=gnu99 -gdwarf-3 -D_AST_std_malloc=1 -DSHOPT_SYSRC -D_map_libc=1 -g' ./bin/package make) 2>&1 | tee -a buildlog.log 2. Run valgrind (_NOTE_: This needs the "en_US.UTF-8" locale to replicate some of the hits): $ (export LD_LIBRARY_PATH=$PWD/arch/linux.i386/lib 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/glob.sh) valgrind hits are: -- snip -- ==4009== Invalid read of size 1 ==4009== at 0x44766F: memmove (name.c:1566) ==4009== by 0x448776: nv_putval (name.c:1959) ==4009== by 0x4091FC: nv_putv (nvdisc.c:156) ==4009== by 0x422EE2: put_lang (init.c:451) ==4009== by 0x4091D6: nv_putv (nvdisc.c:151) ==4009== by 0x4477C8: nv_putval (name.c:1603) ==4009== by 0x4497D9: table_unset (name.c:2423) ==4009== by 0x44C5A8: sh_unscope (name.c:3507) ==4009== by 0x4716A4: sh_ntfork (xec.c:4009) ==4009== by 0x469F38: sh_exec (xec.c:1667) ==4009== by 0x462533: sh_subshell (subshell.c:583) ==4009== by 0x440F71: comsubst (macro.c:2126) ==4009== Address 0x566cb3a is 10 bytes inside a block of size 19 free'd ==4009== at 0x4C298B2: realloc (in /usr/lib64/valgrind/vgpreload_memcheck-amd64-linux.so) ==4009== by 0x504547: _ast_realloc (malloc.c:1041) ==4009== by 0x4486C5: nv_putval (name.c:1942) ==4009== by 0x4091FC: nv_putv (nvdisc.c:156) ==4009== by 0x422EE2: put_lang (init.c:451) ==4009== by 0x4091D6: nv_putv (nvdisc.c:151) ==4009== by 0x4477C8: nv_putval (name.c:1603) ==4009== by 0x4497D9: table_unset (name.c:2423) ==4009== by 0x44C5A8: sh_unscope (name.c:3507) ==4009== by 0x4716A4: sh_ntfork (xec.c:4009) ==4009== by 0x469F38: sh_exec (xec.c:1667) ==4009== by 0x462533: sh_subshell (subshell.c:583) ==4009== ==4009== Conditional jump or move depends on uninitialised value(s) ==4009== at 0x4C2A0C9: __GI_strlen (in /usr/lib64/valgrind/vgpreload_memcheck-amd64-linux.so) ==4009== by 0x53164CA: strxfrm_l (in /lib64/libc-2.14.1.so) ==4009== by 0x4CC54B: col (regcomp.c:1092) ==4009== by 0x4CDE05: bra (regcomp.c:1539) ==4009== by 0x4D1A8A: seq (regcomp.c:2794) ==4009== by 0x4D2208: con (regcomp.c:2872) ==4009== by 0x4D2353: alt (regcomp.c:2898) ==4009== by 0x4D38CC: _ast_regcomp (regcomp.c:3330) ==4009== by 0x4D4B75: _ast_regcache (regcache.c:183) ==4009== by 0x495E0F: _ast_strgrpmatch (strmatch.c:124) ==4009== by 0x495F8B: _ast_strmatch (strmatch.c:154) ==4009== by 0x46CE1C: sh_exec (xec.c:2539) ==4009== Uninitialised value was created by a stack allocation ==4009== at 0x4CC95F: bra (regcomp.c:1171) ==4009== ==4009== Use of uninitialised value of size 8 ==4009== at 0x53165ED: strxfrm_l (in /lib64/libc-2.14.1.so) ==4009== by 0x4CC54B: col (regcomp.c:1092) ==4009== by 0x4CDE05: bra (regcomp.c:1539) ==4009== by 0x4D1A8A: seq (regcomp.c:2794) ==4009== by 0x4D2208: con (regcomp.c:2872) ==4009== by 0x4D2353: alt (regcomp.c:2898) ==4009== by 0x4D38CC: _ast_regcomp (regcomp.c:3330) ==4009== by 0x4D4B75: _ast_regcache (regcache.c:183) ==4009== by 0x495E0F: _ast_strgrpmatch (strmatch.c:124) ==4009== by 0x495F8B: _ast_strmatch (strmatch.c:154) ==4009== by 0x46CE1C: sh_exec (xec.c:2539) ==4009== by 0x466032: sh_eval (xec.c:592) ==4009== Uninitialised value was created by a stack allocation ==4009== at 0x4CC95F: bra (regcomp.c:1171) -- snip -- (I wish valgrind would be more precise and say which variable in regcomp.c:1171 is uninitalised... may require a bit more digging... ;-( ) ---- 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
