]> granicus.if.org Git - vim/commitdiff
patch 8.2.3662: illegal memory access if malloc() fails v8.2.3662
authorBram Moolenaar <Bram@vim.org>
Wed, 24 Nov 2021 15:13:26 +0000 (15:13 +0000)
committerBram Moolenaar <Bram@vim.org>
Wed, 24 Nov 2021 15:13:26 +0000 (15:13 +0000)
Problem:    Illegal memory access if malloc() fails.
Solution:   Check 'foldmethod' is not empty. (closes #9207)

src/fold.c
src/version.c

index d9cba6a2237f49e385200f36e67581b5d978b03b..d4a62675396ccdf641b3949b236a1accc44a1bdb 100644 (file)
@@ -307,7 +307,7 @@ foldedCount(win_T *win, linenr_T lnum, foldinfo_T *infop)
     int
 foldmethodIsManual(win_T *wp)
 {
-    return (wp->w_p_fdm[3] == 'u');
+    return (wp->w_p_fdm[0] != NUL && wp->w_p_fdm[3] == 'u');
 }
 
 // foldmethodIsIndent() {{{2
@@ -327,7 +327,7 @@ foldmethodIsIndent(win_T *wp)
     int
 foldmethodIsExpr(win_T *wp)
 {
-    return (wp->w_p_fdm[1] == 'x');
+    return (wp->w_p_fdm[0] != NUL && wp->w_p_fdm[1] == 'x');
 }
 
 // foldmethodIsMarker() {{{2
@@ -337,7 +337,7 @@ foldmethodIsExpr(win_T *wp)
     int
 foldmethodIsMarker(win_T *wp)
 {
-    return (wp->w_p_fdm[2] == 'r');
+    return (wp->w_p_fdm[0] != NUL && wp->w_p_fdm[2] == 'r');
 }
 
 // foldmethodIsSyntax() {{{2
index 1a39190876e7c2e01629bfb6d0083c16f125d009..58a18560404387fc59ab91dc732d0f4b317a3a1a 100644 (file)
@@ -757,6 +757,8 @@ static char *(features[]) =
 
 static int included_patches[] =
 {   /* Add new patch number below this line */
+/**/
+    3662,
 /**/
     3661,
 /**/