patchlevel 3, memory access error in Ruby syntax highlighting

This commit is contained in:
Karsten Hopp 2013-08-21 15:40:13 +02:00
parent af93781c05
commit c770959bd0
3 changed files with 107 additions and 2 deletions

100
7.4.003 Normal file
View File

@ -0,0 +1,100 @@
To: vim_dev@googlegroups.com
Subject: Patch 7.4.003
Fcc: outbox
From: Bram Moolenaar <Bram@moolenaar.net>
Mime-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
------------
Patch 7.4.003
Problem: Memory access error in Ruby syntax highlighting. (Christopher Chow)
Solution: Refresh stale pointer. (James McCoy)
Files: src/regexp_nfa.c
*** ../vim-7.4.002/src/regexp_nfa.c 2013-08-14 13:31:03.000000000 +0200
--- src/regexp_nfa.c 2013-08-14 14:02:06.000000000 +0200
***************
*** 4120,4126 ****
sub = &subs->norm;
}
#ifdef FEAT_SYN_HL
! else if (state->c >= NFA_ZOPEN)
{
subidx = state->c - NFA_ZOPEN;
sub = &subs->synt;
--- 4120,4126 ----
sub = &subs->norm;
}
#ifdef FEAT_SYN_HL
! else if (state->c >= NFA_ZOPEN && state->c <= NFA_ZOPEN9)
{
subidx = state->c - NFA_ZOPEN;
sub = &subs->synt;
***************
*** 4189,4194 ****
--- 4189,4201 ----
}
subs = addstate(l, state->out, subs, pim, off);
+ /* "subs" may have changed, need to set "sub" again */
+ #ifdef FEAT_SYN_HL
+ if (state->c >= NFA_ZOPEN && state->c <= NFA_ZOPEN9)
+ sub = &subs->synt;
+ else
+ #endif
+ sub = &subs->norm;
if (save_in_use == -1)
{
***************
*** 4237,4243 ****
sub = &subs->norm;
}
#ifdef FEAT_SYN_HL
! else if (state->c >= NFA_ZCLOSE)
{
subidx = state->c - NFA_ZCLOSE;
sub = &subs->synt;
--- 4244,4250 ----
sub = &subs->norm;
}
#ifdef FEAT_SYN_HL
! else if (state->c >= NFA_ZCLOSE && state->c <= NFA_ZCLOSE9)
{
subidx = state->c - NFA_ZCLOSE;
sub = &subs->synt;
***************
*** 4281,4286 ****
--- 4288,4300 ----
}
subs = addstate(l, state->out, subs, pim, off);
+ /* "subs" may have changed, need to set "sub" again */
+ #ifdef FEAT_SYN_HL
+ if (state->c >= NFA_ZCLOSE && state->c <= NFA_ZCLOSE9)
+ sub = &subs->synt;
+ else
+ #endif
+ sub = &subs->norm;
if (REG_MULTI)
sub->list.multi[subidx].end = save_lpos;
*** ../vim-7.4.002/src/version.c 2013-08-14 13:31:03.000000000 +0200
--- src/version.c 2013-08-14 14:03:51.000000000 +0200
***************
*** 729,730 ****
--- 729,732 ----
{ /* Add new patch number below this line */
+ /**/
+ 3,
/**/
--
Where do you want to crash today?
/// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
\\\ an exciting new programming language -- http://www.Zimbu.org ///
\\\ help me help AIDS victims -- http://ICCF-Holland.org ///

View File

@ -26,3 +26,4 @@ Individual patches for Vim 7.4:
SIZE NAME FIXES
13179 7.4.001 'ic' doesn't work for patterns such as [a-z]
2522 7.4.002 pattern with two alternative look-behind matches doesn't match
2680 7.4.003 memory access error in Ruby syntax highlighting

View File

@ -1,3 +1,4 @@
%define patchlevel 3
%if %{?WITH_SELINUX:0}%{!?WITH_SELINUX:1}
%define WITH_SELINUX 1
%endif
@ -14,7 +15,6 @@
%define baseversion 7.4
%define vimdir vim74
%define patchlevel 2
Summary: The VIM editor
URL: http://www.vim.org/
@ -49,6 +49,7 @@ BuildRequires: hunspell-devel
# for i in `seq 1 14`; do printf "Patch%03d: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.%03d\n" $i $i; done
Patch0001: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.001
Patch0002: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.002
Patch0003: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.003
Patch3000: vim-7.4-syntax.patch
Patch3002: vim-7.1-nowarnings.patch
@ -196,7 +197,7 @@ perl -pi -e "s,bin/nawk,bin/awk,g" runtime/tools/mve.awk
# for i in `seq 1 14`; do printf "%%patch%03d -p0 \n" $i; done
%patch001 -p0
%patch002 -p0
%patch003 -p0
# install spell files
%if %{withvimspell}
@ -696,6 +697,9 @@ rm -rf %{buildroot}
%{_datadir}/icons/hicolor/*/apps/*
%changelog
* Wed Aug 21 2013 Karsten Hopp <karsten@redhat.com> 7.4.3-1
- patchlevel 3, memory access error in Ruby syntax highlighting
* Wed Aug 21 2013 Karsten Hopp <karsten@redhat.com> 7.4.2-1
- patchlevel 2, pattern with two alternative look-behind matches doesn't match