diff options
Diffstat (limited to 'source/ap/vim/patches/7.2.113')
-rw-r--r-- | source/ap/vim/patches/7.2.113 | 99 |
1 files changed, 99 insertions, 0 deletions
diff --git a/source/ap/vim/patches/7.2.113 b/source/ap/vim/patches/7.2.113 new file mode 100644 index 00000000..f0e4ebf3 --- /dev/null +++ b/source/ap/vim/patches/7.2.113 @@ -0,0 +1,99 @@ +To: vim-dev@vim.org +Subject: Patch 7.2.113 +Fcc: outbox +From: Bram Moolenaar <Bram@moolenaar.net> +Mime-Version: 1.0 +Content-Type: text/plain; charset=ISO-8859-1 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.2.113 +Problem: Crash for substitute() call using submatch(1) while there is no + such submatch. (Yukihiro Nakadaira) +Solution: Also check the start of the submatch is set, it can be NULL when + an attempted match didn't work out. +Files: src/regexp.c + + +*** ../vim-7.2.112/src/regexp.c Fri Aug 8 13:45:31 2008 +--- src/regexp.c Sat Feb 21 21:46:49 2009 +*************** +*** 4532,4538 **** + cleanup_subexpr(); + if (!REG_MULTI) /* Single-line regexp */ + { +! if (reg_endp[no] == NULL) + { + /* Backref was not set: Match an empty string. */ + len = 0; +--- 4532,4538 ---- + cleanup_subexpr(); + if (!REG_MULTI) /* Single-line regexp */ + { +! if (reg_startp[no] == NULL || reg_endp[no] == NULL) + { + /* Backref was not set: Match an empty string. */ + len = 0; +*************** +*** 4548,4554 **** + } + else /* Multi-line regexp */ + { +! if (reg_endpos[no].lnum < 0) + { + /* Backref was not set: Match an empty string. */ + len = 0; +--- 4548,4554 ---- + } + else /* Multi-line regexp */ + { +! if (reg_startpos[no].lnum < 0 || reg_endpos[no].lnum < 0) + { + /* Backref was not set: Match an empty string. */ + len = 0; +*************** +*** 7279,7291 **** + } + else + { +! if (submatch_match->endp[no] == NULL) + retval = NULL; + else +- { +- s = submatch_match->startp[no]; + retval = vim_strnsave(s, (int)(submatch_match->endp[no] - s)); +- } + } + + return retval; +--- 7279,7289 ---- + } + else + { +! s = submatch_match->startp[no]; +! if (s == NULL || submatch_match->endp[no] == NULL) + retval = NULL; + else + retval = vim_strnsave(s, (int)(submatch_match->endp[no] - s)); + } + + return retval; +*** ../vim-7.2.112/src/version.c Sat Feb 21 21:22:44 2009 +--- src/version.c Sat Feb 21 22:01:56 2009 +*************** +*** 678,679 **** +--- 678,681 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 113, + /**/ + +-- +hundred-and-one symptoms of being an internet addict: +103. When you find yourself in the "Computer" section of Barnes & Noble + enjoying yourself. + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ download, build and distribute -- http://www.A-A-P.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// |