summaryrefslogtreecommitdiffstats
path: root/debian/patches/CVE-2022-0729.patch
diff options
context:
space:
mode:
Diffstat (limited to 'debian/patches/CVE-2022-0729.patch')
-rw-r--r--debian/patches/CVE-2022-0729.patch43
1 files changed, 43 insertions, 0 deletions
diff --git a/debian/patches/CVE-2022-0729.patch b/debian/patches/CVE-2022-0729.patch
new file mode 100644
index 0000000..7333268
--- /dev/null
+++ b/debian/patches/CVE-2022-0729.patch
@@ -0,0 +1,43 @@
+From: Markus Koschany <apo@debian.org>
+Date: Sun, 30 Oct 2022 22:10:14 +0100
+Subject: CVE-2022-0729
+
+Origin: https://github.com/vim/vim/commit/6456fae9ba8e72c74b2c0c499eaf09974604ff30
+---
+ src/regexp.c | 5 +++++
+ src/testdir/test_regexp_utf8.vim | 8 ++++++++
+ 2 files changed, 13 insertions(+)
+
+diff --git a/src/regexp.c b/src/regexp.c
+index 6ad928d..33414ce 100644
+--- a/src/regexp.c
++++ b/src/regexp.c
+@@ -5575,6 +5575,11 @@ regmatch(
+ if (rex.input == rex.line)
+ {
+ /* backup to last char of previous line */
++ if (rex.lnum == 0)
++ {
++ status = RA_NOMATCH;
++ break;
++ }
+ --rex.lnum;
+ rex.line = reg_getline(rex.lnum);
+ /* Just in case regrepeat() didn't count
+diff --git a/src/testdir/test_regexp_utf8.vim b/src/testdir/test_regexp_utf8.vim
+index 75485dc..378bc21 100644
+--- a/src/testdir/test_regexp_utf8.vim
++++ b/src/testdir/test_regexp_utf8.vim
+@@ -215,4 +215,12 @@ func Test_match_invalid_byte()
+ call delete('Xinvalid')
+ endfunc
+
++func Test_match_too_complicated()
++ set regexpengine=1
++ exe "vsplit \xeb\xdb\x99"
++ silent! buf \&\zs*\zs*0
++ bwipe!
++ set regexpengine=0
++endfunc
++
+ " vim: shiftwidth=2 sts=2 expandtab