vim-patch:8.2.3662: illegal memory access if malloc() fails (#36939)

Problem:    Illegal memory access if malloc() fails.
Solution:   Check 'foldmethod' is not empty. (closes vim/vim#9207)

cf1e0239ce

Co-authored-by: Bram Moolenaar <Bram@vim.org>
This commit is contained in:
Jan Edmund Lazo
2025-12-13 20:28:13 -05:00
committed by GitHub
parent c50d544d03
commit a331d187ba

View File

@@ -322,7 +322,7 @@ foldinfo_T fold_info(win_T *win, linenr_T lnum)
/// @return true if 'foldmethod' is "manual" /// @return true if 'foldmethod' is "manual"
bool foldmethodIsManual(win_T *wp) bool 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 // foldmethodIsIndent() {{{2
@@ -336,14 +336,14 @@ bool foldmethodIsIndent(win_T *wp)
/// @return true if 'foldmethod' is "expr" /// @return true if 'foldmethod' is "expr"
bool foldmethodIsExpr(win_T *wp) bool 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 // foldmethodIsMarker() {{{2
/// @return true if 'foldmethod' is "marker" /// @return true if 'foldmethod' is "marker"
bool foldmethodIsMarker(win_T *wp) bool 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 // foldmethodIsSyntax() {{{2