Mercurial > vim
view src/proto/autocmd.pro @ 33774:f2dd85a2bfc0 v9.0.2107
patch 9.0.2107: [security]: FPE in adjust_plines_for_skipcol
Commit: https://github.com/vim/vim/commit/cb0b99f0672d8446585d26e998343dceca17d1ce
Author: Christian Brabandt <cb@256bit.org>
Date: Tue Nov 14 20:05:59 2023 +0100
patch 9.0.2107: [security]: FPE in adjust_plines_for_skipcol
Problem: [security]: FPE in adjust_plines_for_skipcol
Solution: don't divide by zero, return zero
Prevent a floating point exception when calculating w_skipcol (which can
happen with a small window when the number option is set and cpo+=n).
Add a test to verify
Signed-off-by: Christian Brabandt <cb@256bit.org>
author | Christian Brabandt <cb@256bit.org> |
---|---|
date | Thu, 16 Nov 2023 22:15:08 +0100 |
parents | 95db67c7b754 |
children | 610d9a6833c3 |
line wrap: on
line source
/* autocmd.c */ void aubuflocal_remove(buf_T *buf); int au_has_group(char_u *name); void do_augroup(char_u *arg, int del_group); void autocmd_init(void); void free_all_autocmds(void); int is_aucmd_win(win_T *win); int check_ei(void); char_u *au_event_disable(char *what); void au_event_restore(char_u *old_ei); void do_autocmd(exarg_T *eap, char_u *arg_in, int forceit); int do_doautocmd(char_u *arg_start, int do_msg, int *did_something); void ex_doautoall(exarg_T *eap); int check_nomodeline(char_u **argp); void aucmd_prepbuf(aco_save_T *aco, buf_T *buf); void aucmd_restbuf(aco_save_T *aco); int apply_autocmds(event_T event, char_u *fname, char_u *fname_io, int force, buf_T *buf); int apply_autocmds_exarg(event_T event, char_u *fname, char_u *fname_io, int force, buf_T *buf, exarg_T *eap); int apply_autocmds_retval(event_T event, char_u *fname, char_u *fname_io, int force, buf_T *buf, int *retval); int trigger_cursorhold(void); int has_winresized(void); int has_winscrolled(void); int has_cursormoved(void); int has_cursormovedI(void); int has_textchanged(void); int has_textchangedI(void); int has_textchangedP(void); int has_insertcharpre(void); int has_cmdundefined(void); int has_textyankpost(void); int has_completechanged(void); int has_modechanged(void); void block_autocmds(void); void unblock_autocmds(void); int is_autocmd_blocked(void); sctx_T *acp_script_ctx(AutoPatCmd_T *acp); char_u *getnextac(int c, void *cookie, int indent, getline_opt_T options); int has_autocmd(event_T event, char_u *sfname, buf_T *buf); char_u *get_augroup_name(expand_T *xp, int idx); char_u *set_context_in_autocmd(expand_T *xp, char_u *arg, int doautocmd); char_u *get_event_name(expand_T *xp, int idx); char_u *get_event_name_no_group(expand_T *xp, int idx); int autocmd_supported(char_u *name); int au_exists(char_u *arg); void f_autocmd_add(typval_T *argvars, typval_T *rettv); void f_autocmd_delete(typval_T *argvars, typval_T *rettv); void f_autocmd_get(typval_T *argvars, typval_T *rettv); /* vim: set ft=c : */