On 19/05/13 20:02, Tony Mechelynck wrote:
On 19/05/13 19:44, Bram Moolenaar wrote:

I wrote:

Patch 7.3.970

All the tests I could do with the new engine pass.  However, it is
noticeable slower than the old engine.  If this bothers you, set the
'regexpengine' option to one.

If you spot a mistake in regexp pattern matching, please send a
reproducible example, so that we can add it to the tests.


Compiling on linux_x86_64:

gcc -c -I. -Iproto -DHAVE_CONFIG_H   -I/usr/local/include  -O2
-fno-strength-reduce -Wall -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1 -o
objects/regexp.o regexp.c
In file included from regexp.c:7749:0:
regexp_nfa.c: In function ‘nfa_regatom’:
regexp_nfa.c:762:6: warning: cast to pointer from integer of different
size [-Wint-to-pointer-cast]
regexp_nfa.c:773:6: warning: cast to pointer from integer of different
size [-Wint-to-pointer-cast]
regexp_nfa.c:819:7: warning: cast to pointer from integer of different
size [-Wint-to-pointer-cast]
regexp_nfa.c: In function ‘nfa_regpiece’:
regexp_nfa.c:1366:7: warning: cast to pointer from integer of different
size [-Wint-to-pointer-cast]
In file included from /usr/include/string.h:642:0,
                  from os_unix.h:522,
                  from vim.h:268,
                  from regexp.c:47:
In function ‘strcpy’,
     inlined from ‘nfa_recognize_char_class.constprop.24’ at
regexp_nfa.c:379:5:
/usr/include/bits/string3.h:105:3: warning: call to
__builtin___strcpy_chk will always overflow destination buffer [enabled
by default]

The above is with "tiny" features but "huge" features give me the same
(with a much longer gcc command line).

Trying to run the resulting executable (previously it worked with no problems):

linux:~ # gvim -S
*** buffer overflow detected ***: gvim terminated
======= Backtrace: =========
/lib64/libc.so.6(__fortify_fail+0x37)[0x7fa55c3d5547]
/lib64/libc.so.6(+0xef480)[0x7fa55c3d3480]
gvim[0x556647]
gvim[0x5571c3]
gvim[0x55997f]
gvim[0x559ed2]
gvim[0x559ff4]
gvim[0x55a2d7]
gvim(vim_regcomp+0x5b)[0x55e0fb]
gvim[0x4c91df]
gvim(do_autocmd+0x1c4)[0x4c94d4]
gvim(do_cmdline+0x13e8)[0x4b28e8]
gvim(do_source+0x335)[0x4a7b65]
gvim(do_in_runtimepath+0x255)[0x4a6f15]
gvim[0x4aaf0f]
gvim(do_cmdline+0x13e8)[0x4b28e8]
gvim(do_source+0x335)[0x4a7b65]
gvim[0x4a819c]
gvim(do_cmdline+0x13e8)[0x4b28e8]
gvim[0x595c82]
gvim(ex_syntax+0xc2)[0x596b12]
gvim(do_cmdline+0x13e8)[0x4b28e8]
gvim(do_source+0x335)[0x4a7b65]
gvim(do_in_runtimepath+0x255)[0x4a6f15]
gvim(do_cmdline+0x13e8)[0x4b28e8]
gvim(do_source+0x335)[0x4a7b65]
gvim(main+0x2692)[0x45a9d2]
/lib64/libc.so.6(__libc_start_main+0xed)[0x7fa55c30523d]
gvim[0x45b2b1]
======= Memory map: ========
00400000-00778000 r-xp 00000000 08:03 5400932 /usr/local/bin/vim 00978000-00979000 r--p 00378000 08:03 5400932 /usr/local/bin/vim 00979000-009cb000 rw-p 00379000 08:03 5400932 /usr/local/bin/vim 009cb000-012ac000 rw-p 00000000 00:00 0 [heap] 7fa554076000-7fa55408b000 r-xp 00000000 08:03 787630 /lib64/libgcc_s.so.1 7fa55408b000-7fa55428a000 ---p 00015000 08:03 787630 /lib64/libgcc_s.so.1 7fa55428a000-7fa55428b000 r--p 00014000 08:03 787630 /lib64/libgcc_s.so.1 7fa55428b000-7fa55428c000 rw-p 00015000 08:03 787630 /lib64/libgcc_s.so.1 7fa55428c000-7fa554292000 r-xp 00000000 08:03 669094 /usr/lib64/libogg.so.0.7.1 7fa554292000-7fa554491000 ---p 00006000 08:03 669094 /usr/lib64/libogg.so.0.7.1 7fa554491000-7fa554492000 r--p 00005000 08:03 669094 /usr/lib64/libogg.so.0.7.1 7fa554492000-7fa554493000 rw-p 00006000 08:03 669094 /usr/lib64/libogg.so.0.7.1 7fa554493000-7fa5544bf000 r-xp 00000000 08:03 679232 /usr/lib64/libvorbis.so.0.4.5 7fa5544bf000-7fa5546be000 ---p 0002c000 08:03 679232 /usr/lib64/libvorbis.so.0.4.5 7fa5546be000-7fa5546bf000 r--p 0002b000 08:03 679232 /usr/lib64/libvorbis.so.0.4.5 7fa5546bf000-7fa5546c0000 rw-p 0002c000 08:03 679232 /usr/lib64/libvorbis.so.0.4.5 7fa5546c0000-7fa5546c3000 r-xp 00000000 08:03 819094 /lib64/libgpg-error.so.0.8.0 7fa5546c3000-7fa5548c2000 ---p 00003000 08:03 819094 /lib64/libgpg-error.so.0.8.0 7fa5548c2000-7fa5548c3000 r--p 00002000 08:03 819094 /lib64/libgpg-error.so.0.8.0 7fa5548c3000-7fa5548c4000 rw-p 00003000 08:03 819094 /lib64/libgpg-error.so.0.8.0 7fa5548c4000-7fa554a4e000 r-xp 00000000 08:03 2265138 /lib64/libcrypto.so.1.0.0 7fa554a4e000-7fa554c4e000 ---p 0018a000 08:03 2265138 /lib64/libcrypto.so.1.0.0 7fa554c4e000-7fa554c67000 r--p 0018a000 08:03 2265138 /lib64/libcrypto.so.1.0.0 7fa554c67000-7fa554c71000 rw-p 001a3000 08:03 2265138 /lib64/libcrypto.so.1.0.0
7fa554c71000-7fa554c75000 rw-p 00000000 00:00 0
7fa554c75000-7fa554c77000 r-xp 00000000 08:03 511163 /usr/lib64/libXau.so.6.0.0 7fa554c77000-7fa554e77000 ---p 00002000 08:03 511163 /usr/lib64/libXau.so.6.0.0 7fa554e77000-7fa554e78000 r--p 00002000 08:03 511163 /usr/lib64/libXau.so.6.0.0 7fa554e78000-7fa554e79000 rw-p 00003000 08:03 511163 /usr/lib64/libXau.so.6.0.0 7fa554e79000-7fa554e82000 r-xp 00000000 08:03 535162 /usr/lib64/libltdl.so.7.3.0 7fa554e82000-7fa555081000 ---p 00009000 08:03 535162 /usr/lib64/libltdl.so.7.3.0 7fa555081000-7fa555082000 r--p 00008000 08:03 535162 /usr/lib64/libltdl.so.7.3.0 7fa555082000-7fa555083000 rw-p 00009000 08:03 535162 /usr/lib64/libltdl.so.7.3.0 7fa555083000-7fa55508b000 r-xp 00000000 08:03 684250 /usr/lib64/libvorbisfile.so.3.3.4 7fa55508b000-7fa55528a000 ---p 00008000 08:03 684250 /usr/lib64/libvorbisfile.so.3.3.4 7fa55528a000-7fa55528b000 r--p 00007000 08:03 684250 /usr/lib64/libvorbisfile.so.3.3.4 7fa55528b000-7fa55528c000 rw-p 00008000 08:03 684250 /usr/lib64/libvorbisfile.so.3.3.4 7fa55528c000-7fa555291000 r-xp 00000000 08:03 663156 /usr/lib64/libORBitCosNaming-2.so.0.1.0 7fa555291000-7fa555491000 ---p 00005000 08:03 663156 /usr/lib64/libORBitCosNaming-2.so.0.1.0 7fa555491000-7fa555492000 r--p 00005000 08:03 663156 /usr/lib64/libORBitCosNaming-2.so.0.1.0 7fa555492000-7fa555493000 rw-p 00006000 08:03 663156 /usr/lib64/libORBitCosNaming-2.so.0.1.0 7fa555493000-7fa55550e000 r-xp 00000000 08:03 679577 /lib64/libgcrypt.so.11.7.0 7fa55550e000-7fa55570e000 ---p 0007b000 08:03 679577 /lib64/libgcrypt.so.11.7.0 7fa55570e000-7fa55570f000 r--p 0007b000 08:03 679577 /lib64/libgcrypt.so.11.7.0 7fa55570f000-7fa555712000 rw-p 0007c000 08:03 679577 /lib64/libgcrypt.so.11.7.0 7fa555712000-7fa55571e000 r-xp 00000000 08:03 669953 /usr/lib64/libavahi-common.so.3.5.3 7fa55571e000-7fa55591d000 ---p 0000c000 08:03 669953 /usr/lib64/libavahi-common.so.3.5.3 7fa55591d000-7fa55591e000 r--p 0000b000 08:03 669953 /usr/lib64/libavahi-common.so.3.5.3 7fa55591e000-7fa55591f000 rw-p 0000c000 08:03 669953 /usr/lib64/libavahi-common.so.3.5.3 7fa55591f000-7fa555962000 r-xp 00000000 08:03 135529 /lib64/libdbus-1.so.3.6.4 7fa555962000-7fa555b62000 ---p 00043000 08:03 135529 /lib64/libdbus-1.so.3.6.4 7fa555b62000-7fa555b63000 r--p 00043000 08:03 135529 /lib64/libdbus-1.so.3.6.4 7fa555b63000-7fa555b64000 rw-p 00044000 08:03 135529 /lib64/libdbus-1.so.3.6.4 7fa555b64000-7fa555b74000 r-xp 00000000 08:03 672115 /usr/lib64/libavahi-client.so.3.2.9 7fa555b74000-7fa555d73000 ---p 00010000 08:03 672115 /usr/lib64/libavahi-client.so.3.2.9 7fa555d73000-7fa555d74000 r--p 0000f000 08:03 672115 /usr/lib64/libavahi-client.so.3.2.9 7fa555d74000-7fa555d75000 rw-p 00010000 08:03 672115 /usr/lib64/libavahi-client.so.3.2.9 7fa555d75000-7fa555d78000 r-xp 00000000 08:03 675543 /usr/lib64/libavahi-glib.so.1.0.2 7fa555d78000-7fa555f77000 ---p 00003000 08:03 675543 /usr/lib64/libavahi-glib.so.1.0.2 7fa555f77000-7fa555f78000 r--p 00002000 08:03 675543 /usr/lib64/libavahi-glib.so.1.0.2 7fa555f78000-7fa555f79000 rw-p 00003000 08:03 675543 /usr/lib64/libavahi-glib.so.1.0.2 7fa555f79000-7fa555fcf000 r-xp 00000000 08:03 2266190 /lib64/libssl.so.1.0.0 7fa555fcf000-7fa5561cf000 ---p 00056000 08:03 2266190 /lib64/libssl.so.1.0.0 7fa5561cf000-7fa5561d2000 r--p 00056000 08:03 2266190 /lib64/libssl.so.1.0.0 7fa5561d2000-7fa5561d7000 rw-p 00059000 08:03 2266190 /lib64/libssl.so.1.0.0 7fa5561d7000-7fa5561fd000 r-xp 00000000 08:03 451694 /usr/lib64/libdbus-glib-1.so.2.2.2 7fa5561fd000-7fa5563fd000 ---p 00026000 08:03 451694 /usr/lib64/libdbus-glib-1.so.2.2.2 7fa5563fd000-7fa5563fe000 r--p 00026000 08:03 451694 /usr/lib64/libdbus-glib-1.so.2.2.2 7fa5563fe000-7fa5563ff000 rw-p 00027000 08:03 451694 /usr/lib64/libdbus-glib-1.so.2.2.2 7fa5563ff000-7fa556406000 r-xp 00000000 08:03 524825 /usr/lib64/libgailutil.so.18.0.1 7fa556406000-7fa556605000 ---p 00007000 08:03 524825 /usr/lib64/libgailutil.so.18.0.1 7fa556605000-7fa556606000 r--p 00006000 08:03 524825 /usr/lib64/libgailutil.so.18.0.1 7fa556606000-7fa556607000 rw-p 00007000 08:03 524825 /usr/lib64/libgailutil.so.18.0.1 7fa556607000-7fa55662f000 r-xp 00000000 08:03 2265107 /lib64/libexpat.so.1.5.2 7fa55662f000-7fa55682f000 ---p 00028000 08:03 2265107 /lib64/libexpat.so.1.5.2 7fa55682f000-7fa556831000 r--p 00028000 08:03 2265107 /lib64/libexpat.so.1.5.2 7fa556831000-7fa556832000 rw-p 0002a000 08:03 2265107 /lib64/libexpat.so.1.5.2 7fa556832000-7fa556845000 r-xp 00000000 08:03 3019229 /lib64/libresolv-2.14.1.so 7fa556845000-7fa556a45000 ---p 00013000 08:03 3019229 /lib64/libresolv-2.14.1.so 7fa556a45000-7fa556a46000 r--p 00013000 08:03 3019229 /lib64/libresolv-2.14.1.so 7fa556a46000-7fa556a47000 rw-p 00014000 08:03 3019229 /lib64/libresolv-2.14.1.so
7fa556a47000-7fa556a49000 rw-p 00000000 00:00 0
7fa556a49000-7fa556a65000 r-xp 00000000 08:03 450358 /lib64/libselinux.so.1 7fa556a65000-7fa556c64000 ---p 0001c000 08:03 450358 /lib64/libselinux.so.1 7fa556c64000-7fa556c65000 r--p 0001b000 08:03 450358 /lib64/libselinux.so.1 7fa556c65000-7fa556c66000 rw-p 0001c000 08:03 450358 /lib64/libselinux.so.1
7fa556c66000-7fa556c67000 rw-p 00000000 00:00 0
7fa556c67000-7fa556c7e000 r-xp 00000000 08:03 508450 /lib64/libz.so.1.2.5 7fa556c7e000-7fa556e7d000 ---p 00017000 08:03 508450 /lib64/libz.so.1.2.5 7fa556e7d000-7fa556e7e000 r--p 00016000 08:03 508450 /lib64/libz.so.1.2.5 7fa556e7e000-7fa556e7f000 rw-p 00017000 08:03 508450 /lib64/libz.so.1.2.5 7fa556e7f000-7fa556ea7000 r-xp 00000000 08:03 1486085 /usr/lib64/libpng14.so.14.11.0 7fa556ea7000-7fa5570a6000 ---p 00028000 08:03 1486085 /usr/lib64/libpng14.so.14.11.0 7fa5570a6000-7fa5570a7000 r--p 00027000 08:03 1486085 /usr/lib64/libpng14.so.14.11.0 7fa5570a7000-7fa5570a8000 rw-p 00028000 08:03 1486085 /usr/lib64/libpng14.so.14.11.0 7fa5570a8000-7fa55712a000 r-xp 00000000 08:03 535163 /usr/lib64/libpixman-1.so.0.24.0 7fa55712a000-7fa557329000 ---p 00082000 08:03 535163 /usr/lib64/libpixman-1.so.0.24.0 7fa557329000-7fa55732f000 r--p 00081000 08:03 535163 /usr/lib64/libpixman-1.so.0.24.0 7fa55732f000-7fa557330000 rw-p 00087000 08:03 535163 /usr/lib64/libpixman-1.so.0.24.0 7fa557330000-7fa5573b6000 r-xp 00000000 08:03 658750 /usr/lib64/libfreetype.so.6.7.2 7fa5573b6000-7fa5575b6000 ---p 00086000 08:03 658750 /usr/lib64/libfreetype.so.6.7.2 7fa5575b6000-7fa5575bb000 r--p 00086000 08:03 658750 /usr/lib64/libfreetype.so.6.7.2 7fa5575bb000-7fa5575bc000 rw-p 0008b000 08:03 658750 /usr/lib64/libfreetype.so.6.7.2 7fa5575bc000-7fa5575c8000 r-xp 00000000 08:03 2430221 /lib64/libcrypt-2.14.1.so 7fa5575c8000-7fa5577c7000 ---p 0000c000 08:03 2430221 /lib64/libcrypt-2.14.1.so 7fa5577c7000-7fa5577c8000 r--p 0000b000 08:03 2430221 /lib64/libcrypt-2.14.1.so 7fa5577c8000-7fa5577c9000 rw-p 0000c000 08:03 2430221 /lib64/libcrypt-2.14.1.so
7fa5577c9000-7fa5577f7000 rw-p 00000000 00:00 0
7fa5577f7000-7fa5577fb000 r-xp 00000000 08:03 680099 /lib64/libattr.so.1.1.0 7fa5577fb000-7fa5579fa000 ---p 00004000 08:03 680099 /lib64/libattr.so.1.1.0 7fa5579fa000-7fa5579fb000 r--p 00003000 08:03 680099 /lib64/libattr.so.1.1.0 7fa5579fb000-7fa5579fc000 rw-p 00004000 08:03 680099 /lib64/libattr.so.1.1.0 7fa5579fc000-7fa557a18000 r-xp 00000000 08:03 659528 /usr/lib64/libxcb.so.1.1.0 7fa557a18000-7fa557c17000 ---p 0001c000 08:03 659528 /usr/lib64/libxcb.so.1.1.0 7fa557c17000-7fa557c18000 r--p 0001b000 08:03 659528 /usr/lib64/libxcb.so.1.1.0 7fa557c18000-7fa557c19000 rw-p 0001c000 08:03 659528 /usr/lib64/libxcb.so.1.1.0 7fa557c19000-7fa557c27000 r-xp 00000000 08:03 799156 /usr/lib64/libcanberra.so.0.2.5 7fa557c27000-7fa557e27000 ---p 0000e000 08:03 799156 /usr/lib64/libcanberra.so.0.2.5 7fa557e27000-7fa557e28000 r--p 0000e000 08:03 799156 /usr/lib64/libcanberra.so.0.2.5 7fa557e28000-7fa557e29000 rw-p 0000f000 08:03 799156 /usr/lib64/libcanberra.so.0.2.5 7fa557e29000-7fa557e34000 r-xp 00000000 08:03 579608 /lib64/libpopt.so.0.0.0 7fa557e34000-7fa558034000 ---p 0000b000 08:03 579608 /lib64/libpopt.so.0.0.0 7fa558034000-7fa558035000 r--p 0000b000 08:03 579608 /lib64/libpopt.so.0.0.0 7fa558035000-7fa558036000 rw-p 0000c000 08:03 579608 /lib64/libpopt.so.0.0.0 7fa558036000-7fa55818a000 r-xp 00000000 08:03 896778 /usr/lib64/libxml2.so.2.7.8 7fa55818a000-7fa558389000 ---p 00154000 08:03 896778 /usr/lib64/libxml2.so.2.7.8 7fa558389000-7fa558391000 r--p 00153000 08:03 896778 /usr/lib64/libxml2.so.2.7.8 7fa558391000-7fa558393000 rw-p 0015b000 08:03 896778 /usr/lib64/libxml2.so.2.7.8
7fa558393000-7fa558394000 rw-p 00000000 00:00 0
7fa558394000-7fa5583f4000 r-xp 00000000 08:03 580912 /usr/lib64/libORBit-2.so.0.1.0 7fa5583f4000-7fa5585f4000 ---p 00060000 08:03 580912 /usr/lib64/libORBit-2.so.0.1.0 7fa5585f4000-7fa558603000 r--p 00060000 08:03 580912 /usr/lib64/libORBit-2.so.0.1.0 7fa558603000-7fa558606000 rw-p 0006f000 08:03 580912 /usr/lib64/libORBit-2.so.0.1.0
7fa558606000-7fa558607000 rw-p 00000000 00:00 0
7fa558607000-7fa55861f000 r-xp 00000000 08:03 849152 /usr/lib64/libbonobo-activation.so.4.0.0 7fa55861f000-7fa55881f000 ---p 00018000 08:03 849152 /usr/lib64/libbonobo-activation.so.4.0.0 7fa55881f000-7fa558821000 r--p 00018000 08:03 849152 /usr/lib64/libbonobo-activation.so.4.0.0 7fa558821000-7fa558823000 rw-p 0001a000 08:03 849152 /usr/lib64/libbonobo-activation.so.4.0.0
7fa558823000-7fa558824000 rw-p 00000000 00:00 0
7fa558824000-7fa55888b000 r-xp 00000000 08:03 720274 /usr/lib64/libbonobo-2.so.0.0.0 7fa55888b000-7fa558a8b000 ---p 00067000 08:03 720274 /usr/lib64/libbonobo-2.so.0.0.0 7fa558a8b000-7fa558a91000 r--p 00067000 08:03 720274 /usr/lib64/libbonobo-2.so.0.0.0 7fa558a91000-7fa558a9c000 rw-p 0006d000 08:03 720274 /usr/lib64/libbonobo-2.so.0.0.0 7fa558a9c000-7fa558aa0000 r-xp 00000000 08:03 630103 /lib64/libuuid.so.1.3.0 7fa558aa0000-7fa558c9f000 ---p 00004000 08:03 630103 /lib64/libuuid.so.1.3.0 7fa558c9f000-7fa558ca0000 r--p 00003000 08:03 630103 /lib64/libuuid.so.1.3.0 7fa558ca0000-7fa558ca1000 rw-p 00004000 08:03 630103 /lib64/libuuid.so.1.3.0 Vim: Caught deadly signal ABRT 00000000 08:03 521887 /usr/lib64/libgnome-keyring.so.0.1.1
Vim: Finished.
Aborted
linux:~ #




Best regards,
Tony.
--
SOLDIER: What? A swallow carrying a coconut?
ARTHUR:  It could grip it by the husk ...
"Monty Python and the Holy Grail" PYTHON (MONTY) PICTURES LTD

--
--
You received this message from the "vim_dev" maillist.
Do not top-post! Type your reply below the text you are replying to.
For more information, visit http://www.vim.org/maillist.php

--- You received this message because you are subscribed to the Google Groups "vim_dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
For more options, visit https://groups.google.com/groups/opt_out.


Raspunde prin e-mail lui