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
signature.asc
Description: Digital signature
