Hi,

this is what valgrind shows

 ==23137== Invalid read of size 2
 ==23137==    at 0x57DB446: stkclose (stk.c:312)
 ==23137==    by 0x511CB6A: sh_funstaks (parse.c:495)
 ==23137==    by 0x511CB99: sh_freeup (parse.c:476)
 ==23137==    by 0x5139567: sh_eval_20120720 (xec.c:4202)
 ==23137==    by 0x50C75C0: b_dot_cmd (misc.c:295)
 ==23137==    by 0x5138B54: sh_exec (xec.c:1382)
 ==23137==    by 0x50D4956: exfile (main.c:627)
 ==23137==    by 0x50D52D9: sh_main (main.c:399)
 ==23137==    by 0x5F17C15: (below main) (in /lib64/libc-2.11.3.so)
 ==23137==  Address 0x62f3430 is 224 bytes inside a block of size 248 free'd
 ==23137==    at 0x4C2852A: free (in 
/usr/lib64/valgrind/vgpreload_memcheck-amd64-linux.so)
 ==23137==    by 0x57DBC44: stkexcept (stk.c:182)
 ==23137==    by 0x582CCF0: sfraise (sfraise.c:90)
 ==23137==    by 0x5812C48: sfclose (sfclose.c:160)
 ==23137==    by 0x5113BAC: _nv_unset (name.c:2639)
 ==23137==    by 0x50CF10F: unall (typeset.c:1285)
 ==23137==    by 0x5138B54: sh_exec (xec.c:1382)
 ==23137==    by 0x513346C: sh_exec (xec.c:2255)
 ==23137==    by 0x5139409: sh_eval_20120720 (xec.c:4189)
 ==23137==    by 0x50C75C0: b_dot_cmd (misc.c:295)
 ==23137==    by 0x5138B54: sh_exec (xec.c:1382)
 ==23137==    by 0x50D4956: exfile (main.c:627)

that is that in sh_eval_20120720() witin the while loop the stream is
freed by sh_exec() -> unall() -> _nv_unset() -> sfclose()
and later on after the loop with sh_freeup() -> sh_funstaks() -> stkclose()

Werner

-- 
  "Having a smoking section in a restaurant is like having
          a peeing section in a swimming pool." -- Edward Burr

Attachment: pgpFKJHqkUoec.pgp
Description: PGP signature

_______________________________________________
ast-developers mailing list
ast-developers@lists.research.att.com
http://lists.research.att.com/mailman/listinfo/ast-developers

Reply via email to