On Wed, Jun 26, 2013 at 06:17:24PM +0200, Bram Moolenaar wrote:
> Patch 7.3.1247
> Problem:    New regexp engine: '[ ]\@!\p\%([ ]\@!\p\)*:' does not always 
> match.
> Solution:   When there is a PIM add a duplicate state that starts at another
>           position.
> Files:            src/regexp_nfa.c, src/testdir/test64.in, 
> src/testdir/test64.ok

Since this patch, valgrind reports the following errors (compiled
with patch 7.3.1278):

    Invalid read of size 4
       at 0x4EEB40: copy_sub (in src/vim)
       by 0x4EF70E: addstate (in src/vim)
       by 0x4EF866: addstate (in src/vim)
       by 0x4EFC75: addstate_here (in src/vim)
       by 0x4FC6D9: nfa_regmatch (in src/vim)
       by 0x501402: nfa_regtry (in src/vim)
       by 0x5017E7: nfa_regexec_both (in src/vim)
       by 0x501C00: nfa_regexec_nl (in src/vim)
       by 0x4368F9: find_some_match (in src/vim)
       by 0x4383D4: call_func (in src/vim)
       by 0x43C267: get_func_tv (in src/vim)
       by 0x43AC56: eval7 (in src/vim)
       by 0x43AE63: eval6 (in src/vim)
       by 0x43B0ED: eval5 (in src/vim)
       by 0x43BD24: eval3 (in src/vim)
       by 0x43BEA4: eval1 (in src/vim)
       by 0x43C35B: eval0 (in src/vim)
       by 0x441CA2: ex_let (in src/vim)
       by 0x45E24C: do_cmdline (in src/vim)
       by 0x4BFDFD: nv_colon (in src/vim)
       by 0x4C5DD3: normal_cmd (in src/vim)
       by 0x561D5C: main_loop (in src/vim)
       by 0x408F08: main (in src/vim)
     Address 0x7eae250 is 25,184 bytes inside a block of size 25,840 free'd
       at 0x4C28CCE: realloc (in 
/usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
       by 0x4EF9FC: addstate (in src/vim)
       by 0x4EF866: addstate (in src/vim)
       by 0x4EFC75: addstate_here (in src/vim)
       by 0x4FC6D9: nfa_regmatch (in src/vim)
       by 0x501402: nfa_regtry (in src/vim)
       by 0x5017E7: nfa_regexec_both (in src/vim)
       by 0x501C00: nfa_regexec_nl (in src/vim)
       by 0x4368F9: find_some_match (in src/vim)
       by 0x4383D4: call_func (in src/vim)
       by 0x43C267: get_func_tv (in src/vim)
       by 0x43AC56: eval7 (in src/vim)
       by 0x43AE63: eval6 (in src/vim)
       by 0x43B0ED: eval5 (in src/vim)
       by 0x43BD24: eval3 (in src/vim)
       by 0x43BEA4: eval1 (in src/vim)
       by 0x43C35B: eval0 (in src/vim)
       by 0x441CA2: ex_let (in src/vim)
       by 0x45E24C: do_cmdline (in src/vim)
       by 0x4BFDFD: nv_colon (in src/vim)
       by 0x4C5DD3: normal_cmd (in src/vim)
       by 0x561D5C: main_loop (in src/vim)
       by 0x408F08: main (in src/vim)
    
    Invalid read of size 4
       at 0x4EEB44: copy_sub (in src/vim)
       by 0x4EF70E: addstate (in src/vim)
       by 0x4EF866: addstate (in src/vim)
       by 0x4EFC75: addstate_here (in src/vim)
       by 0x4FC6D9: nfa_regmatch (in src/vim)
       by 0x501402: nfa_regtry (in src/vim)
       by 0x5017E7: nfa_regexec_both (in src/vim)
       by 0x501C00: nfa_regexec_nl (in src/vim)
       by 0x4368F9: find_some_match (in src/vim)
       by 0x4383D4: call_func (in src/vim)
       by 0x43C267: get_func_tv (in src/vim)
       by 0x43AC56: eval7 (in src/vim)
       by 0x43AE63: eval6 (in src/vim)
       by 0x43B0ED: eval5 (in src/vim)
       by 0x43BD24: eval3 (in src/vim)
       by 0x43BEA4: eval1 (in src/vim)
       by 0x43C35B: eval0 (in src/vim)
       by 0x441CA2: ex_let (in src/vim)
       by 0x45E24C: do_cmdline (in src/vim)
       by 0x4BFDFD: nv_colon (in src/vim)
       by 0x4C5DD3: normal_cmd (in src/vim)
       by 0x561D5C: main_loop (in src/vim)
       by 0x408F08: main (in src/vim)
     Address 0x7eae250 is 25,184 bytes inside a block of size 25,840 free'd
       at 0x4C28CCE: realloc (in 
/usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
       by 0x4EF9FC: addstate (in src/vim)
       by 0x4EF866: addstate (in src/vim)
       by 0x4EFC75: addstate_here (in src/vim)
       by 0x4FC6D9: nfa_regmatch (in src/vim)
       by 0x501402: nfa_regtry (in src/vim)
       by 0x5017E7: nfa_regexec_both (in src/vim)
       by 0x501C00: nfa_regexec_nl (in src/vim)
       by 0x4368F9: find_some_match (in src/vim)
       by 0x4383D4: call_func (in src/vim)
       by 0x43C267: get_func_tv (in src/vim)
       by 0x43AC56: eval7 (in src/vim)
       by 0x43AE63: eval6 (in src/vim)
       by 0x43B0ED: eval5 (in src/vim)
       by 0x43BD24: eval3 (in src/vim)
       by 0x43BEA4: eval1 (in src/vim)
       by 0x43C35B: eval0 (in src/vim)
       by 0x441CA2: ex_let (in src/vim)
       by 0x45E24C: do_cmdline (in src/vim)
       by 0x4BFDFD: nv_colon (in src/vim)
       by 0x4C5DD3: normal_cmd (in src/vim)
       by 0x561D5C: main_loop (in src/vim)
       by 0x408F08: main (in src/vim)
    
    Invalid read of size 8
       at 0x4C2B680: memmove (in 
/usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
       by 0x4EF70E: addstate (in src/vim)
       by 0x4EF866: addstate (in src/vim)
       by 0x4EFC75: addstate_here (in src/vim)
       by 0x4FC6D9: nfa_regmatch (in src/vim)
       by 0x501402: nfa_regtry (in src/vim)
       by 0x5017E7: nfa_regexec_both (in src/vim)
       by 0x501C00: nfa_regexec_nl (in src/vim)
       by 0x4368F9: find_some_match (in src/vim)
       by 0x4383D4: call_func (in src/vim)
       by 0x43C267: get_func_tv (in src/vim)
       by 0x43AC56: eval7 (in src/vim)
       by 0x43AE63: eval6 (in src/vim)
       by 0x43B0ED: eval5 (in src/vim)
       by 0x43BD24: eval3 (in src/vim)
       by 0x43BEA4: eval1 (in src/vim)
       by 0x43C35B: eval0 (in src/vim)
       by 0x441CA2: ex_let (in src/vim)
       by 0x45E24C: do_cmdline (in src/vim)
       by 0x4BFDFD: nv_colon (in src/vim)
       by 0x4C5DD3: normal_cmd (in src/vim)
       by 0x561D5C: main_loop (in src/vim)
       by 0x408F08: main (in src/vim)
     Address 0x7eae260 is 25,200 bytes inside a block of size 25,840 free'd
       at 0x4C28CCE: realloc (in 
/usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
       by 0x4EF9FC: addstate (in src/vim)
       by 0x4EF866: addstate (in src/vim)
       by 0x4EFC75: addstate_here (in src/vim)
       by 0x4FC6D9: nfa_regmatch (in src/vim)
       by 0x501402: nfa_regtry (in src/vim)
       by 0x5017E7: nfa_regexec_both (in src/vim)
       by 0x501C00: nfa_regexec_nl (in src/vim)
       by 0x4368F9: find_some_match (in src/vim)
       by 0x4383D4: call_func (in src/vim)
       by 0x43C267: get_func_tv (in src/vim)
       by 0x43AC56: eval7 (in src/vim)
       by 0x43AE63: eval6 (in src/vim)
       by 0x43B0ED: eval5 (in src/vim)
       by 0x43BD24: eval3 (in src/vim)
       by 0x43BEA4: eval1 (in src/vim)
       by 0x43C35B: eval0 (in src/vim)
       by 0x441CA2: ex_let (in src/vim)
       by 0x45E24C: do_cmdline (in src/vim)
       by 0x4BFDFD: nv_colon (in src/vim)
       by 0x4C5DD3: normal_cmd (in src/vim)
       by 0x561D5C: main_loop (in src/vim)
       by 0x408F08: main (in src/vim)
    
    Invalid read of size 4
       at 0x4EEB40: copy_sub (in src/vim)
       by 0x4EF70E: addstate (in src/vim)
       by 0x4EFC75: addstate_here (in src/vim)
       by 0x4FC6D9: nfa_regmatch (in src/vim)
       by 0x501402: nfa_regtry (in src/vim)
       by 0x5017E7: nfa_regexec_both (in src/vim)
       by 0x501C00: nfa_regexec_nl (in src/vim)
       by 0x4368F9: find_some_match (in src/vim)
       by 0x4383D4: call_func (in src/vim)
       by 0x43C267: get_func_tv (in src/vim)
       by 0x43AC56: eval7 (in src/vim)
       by 0x43AE63: eval6 (in src/vim)
       by 0x43B0ED: eval5 (in src/vim)
       by 0x43BD24: eval3 (in src/vim)
       by 0x43BEA4: eval1 (in src/vim)
       by 0x43C35B: eval0 (in src/vim)
       by 0x441CA2: ex_let (in src/vim)
       by 0x45E24C: do_cmdline (in src/vim)
       by 0x4BFDFD: nv_colon (in src/vim)
       by 0x4C5DD3: normal_cmd (in src/vim)
       by 0x561D5C: main_loop (in src/vim)
       by 0x408F08: main (in src/vim)
     Address 0x7eae250 is 25,184 bytes inside a block of size 25,840 free'd
       at 0x4C28CCE: realloc (in 
/usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
       by 0x4EF9FC: addstate (in src/vim)
       by 0x4EF866: addstate (in src/vim)
       by 0x4EFC75: addstate_here (in src/vim)
       by 0x4FC6D9: nfa_regmatch (in src/vim)
       by 0x501402: nfa_regtry (in src/vim)
       by 0x5017E7: nfa_regexec_both (in src/vim)
       by 0x501C00: nfa_regexec_nl (in src/vim)
       by 0x4368F9: find_some_match (in src/vim)
       by 0x4383D4: call_func (in src/vim)
       by 0x43C267: get_func_tv (in src/vim)
       by 0x43AC56: eval7 (in src/vim)
       by 0x43AE63: eval6 (in src/vim)
       by 0x43B0ED: eval5 (in src/vim)
       by 0x43BD24: eval3 (in src/vim)
       by 0x43BEA4: eval1 (in src/vim)
       by 0x43C35B: eval0 (in src/vim)
       by 0x441CA2: ex_let (in src/vim)
       by 0x45E24C: do_cmdline (in src/vim)
       by 0x4BFDFD: nv_colon (in src/vim)
       by 0x4C5DD3: normal_cmd (in src/vim)
       by 0x561D5C: main_loop (in src/vim)
       by 0x408F08: main (in src/vim)
    
    Invalid read of size 4
       at 0x4EEB44: copy_sub (in src/vim)
       by 0x4EF70E: addstate (in src/vim)
       by 0x4EFC75: addstate_here (in src/vim)
       by 0x4FC6D9: nfa_regmatch (in src/vim)
       by 0x501402: nfa_regtry (in src/vim)
       by 0x5017E7: nfa_regexec_both (in src/vim)
       by 0x501C00: nfa_regexec_nl (in src/vim)
       by 0x4368F9: find_some_match (in src/vim)
       by 0x4383D4: call_func (in src/vim)
       by 0x43C267: get_func_tv (in src/vim)
       by 0x43AC56: eval7 (in src/vim)
       by 0x43AE63: eval6 (in src/vim)
       by 0x43B0ED: eval5 (in src/vim)
       by 0x43BD24: eval3 (in src/vim)
       by 0x43BEA4: eval1 (in src/vim)
       by 0x43C35B: eval0 (in src/vim)
       by 0x441CA2: ex_let (in src/vim)
       by 0x45E24C: do_cmdline (in src/vim)
       by 0x4BFDFD: nv_colon (in src/vim)
       by 0x4C5DD3: normal_cmd (in src/vim)
       by 0x561D5C: main_loop (in src/vim)
       by 0x408F08: main (in src/vim)
     Address 0x7eae250 is 25,184 bytes inside a block of size 25,840 free'd
       at 0x4C28CCE: realloc (in 
/usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
       by 0x4EF9FC: addstate (in src/vim)
       by 0x4EF866: addstate (in src/vim)
       by 0x4EFC75: addstate_here (in src/vim)
       by 0x4FC6D9: nfa_regmatch (in src/vim)
       by 0x501402: nfa_regtry (in src/vim)
       by 0x5017E7: nfa_regexec_both (in src/vim)
       by 0x501C00: nfa_regexec_nl (in src/vim)
       by 0x4368F9: find_some_match (in src/vim)
       by 0x4383D4: call_func (in src/vim)
       by 0x43C267: get_func_tv (in src/vim)
       by 0x43AC56: eval7 (in src/vim)
       by 0x43AE63: eval6 (in src/vim)
       by 0x43B0ED: eval5 (in src/vim)
       by 0x43BD24: eval3 (in src/vim)
       by 0x43BEA4: eval1 (in src/vim)
       by 0x43C35B: eval0 (in src/vim)
       by 0x441CA2: ex_let (in src/vim)
       by 0x45E24C: do_cmdline (in src/vim)
       by 0x4BFDFD: nv_colon (in src/vim)
       by 0x4C5DD3: normal_cmd (in src/vim)
       by 0x561D5C: main_loop (in src/vim)
       by 0x408F08: main (in src/vim)
    
    Invalid read of size 8
       at 0x4C2B680: memmove (in 
/usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
       by 0x4EF70E: addstate (in src/vim)
       by 0x4EFC75: addstate_here (in src/vim)
       by 0x4FC6D9: nfa_regmatch (in src/vim)
       by 0x501402: nfa_regtry (in src/vim)
       by 0x5017E7: nfa_regexec_both (in src/vim)
       by 0x501C00: nfa_regexec_nl (in src/vim)
       by 0x4368F9: find_some_match (in src/vim)
       by 0x4383D4: call_func (in src/vim)
       by 0x43C267: get_func_tv (in src/vim)
       by 0x43AC56: eval7 (in src/vim)
       by 0x43AE63: eval6 (in src/vim)
       by 0x43B0ED: eval5 (in src/vim)
       by 0x43BD24: eval3 (in src/vim)
       by 0x43BEA4: eval1 (in src/vim)
       by 0x43C35B: eval0 (in src/vim)
       by 0x441CA2: ex_let (in src/vim)
       by 0x45E24C: do_cmdline (in src/vim)
       by 0x4BFDFD: nv_colon (in src/vim)
       by 0x4C5DD3: normal_cmd (in src/vim)
       by 0x561D5C: main_loop (in src/vim)
       by 0x408F08: main (in src/vim)
     Address 0x7eae260 is 25,200 bytes inside a block of size 25,840 free'd
       at 0x4C28CCE: realloc (in 
/usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
       by 0x4EF9FC: addstate (in src/vim)
       by 0x4EF866: addstate (in src/vim)
       by 0x4EFC75: addstate_here (in src/vim)
       by 0x4FC6D9: nfa_regmatch (in src/vim)
       by 0x501402: nfa_regtry (in src/vim)
       by 0x5017E7: nfa_regexec_both (in src/vim)
       by 0x501C00: nfa_regexec_nl (in src/vim)
       by 0x4368F9: find_some_match (in src/vim)
       by 0x4383D4: call_func (in src/vim)
       by 0x43C267: get_func_tv (in src/vim)
       by 0x43AC56: eval7 (in src/vim)
       by 0x43AE63: eval6 (in src/vim)
       by 0x43B0ED: eval5 (in src/vim)
       by 0x43BD24: eval3 (in src/vim)
       by 0x43BEA4: eval1 (in src/vim)
       by 0x43C35B: eval0 (in src/vim)
       by 0x441CA2: ex_let (in src/vim)
       by 0x45E24C: do_cmdline (in src/vim)
       by 0x4BFDFD: nv_colon (in src/vim)
       by 0x4C5DD3: normal_cmd (in src/vim)
       by 0x561D5C: main_loop (in src/vim)
       by 0x408F08: main (in src/vim)

If I revert the patch, the errors no longer occur.

Regards
Simon
-- 
+ privacy is necessary
+ using gnupg http://gnupg.org
+ public key id: 0x92FEFDB7E44C32F9

Attachment: signature.asc
Description: Digital signature

Raspunde prin e-mail lui