mirror of
https://github.com/neovim/neovim.git
synced 2025-12-11 09:02:40 +00:00
fix(float): null pointer dereference, redundant call #36727
Problem: Null pointer dereference when checking *wp->w_p_stl. win_set_inner_size called twice in win_new_float. Solution: Add null check for wp->w_p_stl. Remove redundant win_set_inner_size call as win_config_float already calls it.
This commit is contained in:
@@ -127,8 +127,6 @@ You can change the contents of the status line with the 'statusline' option.
|
|||||||
This option can be local to the window, so that you can have a different
|
This option can be local to the window, so that you can have a different
|
||||||
status line in each window.
|
status line in each window.
|
||||||
|
|
||||||
Note: |floating-windows| 'statusline' is not affected by 'laststatus'.
|
|
||||||
|
|
||||||
Normally, inversion is used to display the status line. This can be changed
|
Normally, inversion is used to display the status line. This can be changed
|
||||||
with the |hl-StatusLine| highlight group. If no highlighting is used for the
|
with the |hl-StatusLine| highlight group. If no highlighting is used for the
|
||||||
status line, the '^' character is used for the current window, and '=' for
|
status line, the '^' character is used for the current window, and '=' for
|
||||||
|
|||||||
@@ -108,14 +108,13 @@ win_T *win_new_float(win_T *wp, bool last, WinConfig fconfig, Error *err)
|
|||||||
win_append(lastwin_nofloating(), wp, NULL);
|
win_append(lastwin_nofloating(), wp, NULL);
|
||||||
}
|
}
|
||||||
wp->w_floating = true;
|
wp->w_floating = true;
|
||||||
wp->w_status_height = *wp->w_p_stl != NUL && (p_ls == 1 || p_ls == 2) ? STATUS_HEIGHT : 0;
|
wp->w_status_height = wp->w_p_stl && *wp->w_p_stl != NUL
|
||||||
|
&& (p_ls == 1 || p_ls == 2) ? STATUS_HEIGHT : 0;
|
||||||
wp->w_winbar_height = 0;
|
wp->w_winbar_height = 0;
|
||||||
wp->w_hsep_height = 0;
|
wp->w_hsep_height = 0;
|
||||||
wp->w_vsep_width = 0;
|
wp->w_vsep_width = 0;
|
||||||
|
|
||||||
win_config_float(wp, fconfig);
|
win_config_float(wp, fconfig);
|
||||||
win_set_inner_size(wp, true);
|
|
||||||
wp->w_pos_changed = true;
|
|
||||||
redraw_later(wp, UPD_VALID);
|
redraw_later(wp, UPD_VALID);
|
||||||
return wp;
|
return wp;
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user