in src/lib/libast/regex/reg[nr]exec.c change

        while ((index += skip[buf[index]]) < mid);

to

        while (index < mid)
                index += skip[buf[index]];

On Mon, 17 Jun 2013 18:10:38 +0200 Roland Mainz wrote:
> Hi!

> ----

> The following testcase triggers a valgrind hit in ast-ksh.2013-06-11
> on SuSE 12.3/AMD64/32bit build when the "grep" built does matching in
> a very short (e.g. two bytes) file:
> -- snip --
> $ ~/vg/bin/valgrind ~/bin/ksh -c 'builtin grep ; grep -S "*foo*"
> <(print "") ; true'
> ==10149== Memcheck, a memory error detector
> ==10149== Copyright (C) 2002-2012, and GNU GPL'd, by Julian Seward et al.
> ==10149== Using Valgrind-3.8.1 and LibVEX; rerun with -h for copyright info
> ==10149== Command: /home/test001/bin/ksh -c builtin\ grep\ ;\ grep\
> -S\ "*foo*"\ \<(print\ "")\ ;\ true
> [snip]
> ==10149== Use of uninitialised value of size 8
> ==10149==    at 0x4F6B18: _ast_regrexec_20120528 (regrexec.c:75)
> ==10149==    by 0x55F452: execute (grep.c:669)
> ==10149==    by 0x56012B: grep (grep.c:985)
> ==10149==    by 0x56049C: b_grep (grep.c:1077)
> ==10149==    by 0x47BE51: sh_exec (xec.c:1357)
> ==10149==    by 0x47EEB5: sh_exec (xec.c:2218)
> ==10149==    by 0x40F474: exfile (main.c:599)
> ==10149==    by 0x40E61B: sh_main (main.c:371)
> ==10149==    by 0x40D750: main (pmain.c:45)
> -- 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]
http://lists.research.att.com/mailman/listinfo/ast-developers

Reply via email to