annotate runtime/ftplugin/rrst.vim @ 33879:d418c82f02a4 v9.0.2149

patch 9.0.2149: [security]: use-after-free in exec_instructions() Commit: https://github.com/vim/vim/commit/5dd41d4b6370b7b7d09d691f9252b3899c66102a Author: Christian Brabandt <cb@256bit.org> Date: Mon Dec 4 22:52:23 2023 +0100 patch 9.0.2149: [security]: use-after-free in exec_instructions() Problem: [security]: use-after-free in exec_instructions() Solution: get tv pointer again [security]: use-after-free in exec_instructions() exec_instructions may access freed memory, if the GA_GROWS_FAILS() re-allocates memory. When this happens, the typval tv may still point to now already freed memory. So let's get that pointer again and compare it with tv. If those two pointers differ, tv is now invalid and we have to refresh the tv pointer. closes: #13621 Signed-off-by: Christian Brabandt <cb@256bit.org>
author Christian Brabandt <cb@256bit.org>
date Sun, 10 Dec 2023 15:16:17 +0100
parents b2e8663e6dcc
children 8ae680be2a51
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
6051
0efec12f52ac Updated runtime files.
Bram Moolenaar <bram@vim.org>
parents:
diff changeset
1 " Vim filetype plugin file
0efec12f52ac Updated runtime files.
Bram Moolenaar <bram@vim.org>
parents:
diff changeset
2 " Language: reStructuredText documentation format with R code
0efec12f52ac Updated runtime files.
Bram Moolenaar <bram@vim.org>
parents:
diff changeset
3 " Maintainer: Jakson Alves de Aquino <jalvesaq@gmail.com>
8497
da01d5da2cfa commit https://github.com/vim/vim/commit/77cdfd10382e01cc51f4ba1a9177032351843151
Christian Brabandt <cb@256bit.org>
parents: 6051
diff changeset
4 " Homepage: https://github.com/jalvesaq/R-Vim-runtime
32294
b2e8663e6dcc Update runtime files
Bram Moolenaar <Bram@vim.org>
parents: 32061
diff changeset
5 " Last Change: Mon Feb 27, 2023 07:16PM
6051
0efec12f52ac Updated runtime files.
Bram Moolenaar <bram@vim.org>
parents:
diff changeset
6 " Original work by Alex Zvoleff
0efec12f52ac Updated runtime files.
Bram Moolenaar <bram@vim.org>
parents:
diff changeset
7
0efec12f52ac Updated runtime files.
Bram Moolenaar <bram@vim.org>
parents:
diff changeset
8 " Only do this when not yet done for this buffer
0efec12f52ac Updated runtime files.
Bram Moolenaar <bram@vim.org>
parents:
diff changeset
9 if exists("b:did_ftplugin")
0efec12f52ac Updated runtime files.
Bram Moolenaar <bram@vim.org>
parents:
diff changeset
10 finish
0efec12f52ac Updated runtime files.
Bram Moolenaar <bram@vim.org>
parents:
diff changeset
11 endif
0efec12f52ac Updated runtime files.
Bram Moolenaar <bram@vim.org>
parents:
diff changeset
12
0efec12f52ac Updated runtime files.
Bram Moolenaar <bram@vim.org>
parents:
diff changeset
13 " Don't load another plugin for this buffer
0efec12f52ac Updated runtime files.
Bram Moolenaar <bram@vim.org>
parents:
diff changeset
14 let b:did_ftplugin = 1
0efec12f52ac Updated runtime files.
Bram Moolenaar <bram@vim.org>
parents:
diff changeset
15
0efec12f52ac Updated runtime files.
Bram Moolenaar <bram@vim.org>
parents:
diff changeset
16 let s:cpo_save = &cpo
0efec12f52ac Updated runtime files.
Bram Moolenaar <bram@vim.org>
parents:
diff changeset
17 set cpo&vim
0efec12f52ac Updated runtime files.
Bram Moolenaar <bram@vim.org>
parents:
diff changeset
18
14637
0ecb909e3249 Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 8497
diff changeset
19 setlocal comments=fb:*,fb:-,fb:+,n:>
0ecb909e3249 Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 8497
diff changeset
20 setlocal commentstring=#\ %s
6051
0efec12f52ac Updated runtime files.
Bram Moolenaar <bram@vim.org>
parents:
diff changeset
21 setlocal formatoptions+=tcqln
0efec12f52ac Updated runtime files.
Bram Moolenaar <bram@vim.org>
parents:
diff changeset
22 setlocal formatlistpat=^\\s*\\d\\+\\.\\s\\+\\\|^\\s*[-*+]\\s\\+
0efec12f52ac Updated runtime files.
Bram Moolenaar <bram@vim.org>
parents:
diff changeset
23 setlocal iskeyword=@,48-57,_,.
0efec12f52ac Updated runtime files.
Bram Moolenaar <bram@vim.org>
parents:
diff changeset
24
32294
b2e8663e6dcc Update runtime files
Bram Moolenaar <Bram@vim.org>
parents: 32061
diff changeset
25 function FormatRrst()
14637
0ecb909e3249 Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 8497
diff changeset
26 if search('^\.\. {r', "bncW") > search('^\.\. \.\.$', "bncW")
0ecb909e3249 Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 8497
diff changeset
27 setlocal comments=:#',:###,:##,:#
0ecb909e3249 Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 8497
diff changeset
28 else
0ecb909e3249 Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 8497
diff changeset
29 setlocal comments=fb:*,fb:-,fb:+,n:>
0ecb909e3249 Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 8497
diff changeset
30 endif
0ecb909e3249 Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 8497
diff changeset
31 return 1
0ecb909e3249 Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 8497
diff changeset
32 endfunction
0ecb909e3249 Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 8497
diff changeset
33
0ecb909e3249 Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 8497
diff changeset
34 " If you do not want 'comments' dynamically defined, put in your vimrc:
0ecb909e3249 Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 8497
diff changeset
35 " let g:rrst_dynamic_comments = 0
0ecb909e3249 Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 8497
diff changeset
36 if !exists("g:rrst_dynamic_comments") || (exists("g:rrst_dynamic_comments") && g:rrst_dynamic_comments == 1)
0ecb909e3249 Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 8497
diff changeset
37 setlocal formatexpr=FormatRrst()
0ecb909e3249 Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 8497
diff changeset
38 endif
0ecb909e3249 Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 8497
diff changeset
39
24520
5bda4653aced Update runtime files
Bram Moolenaar <Bram@vim.org>
parents: 14637
diff changeset
40 if (has("gui_win32") || has("gui_gtk")) && !exists("b:browsefilter")
32061
b2412874362f Update runtime files
Bram Moolenaar <Bram@vim.org>
parents: 24520
diff changeset
41 let b:browsefilter = "R Source Files (*.R *.Rnw *.Rd *.Rmd *.Rrst *.qmd)\t*.R;*.Rnw;*.Rd;*.Rmd;*.Rrst;*.qmd\n" .
6051
0efec12f52ac Updated runtime files.
Bram Moolenaar <bram@vim.org>
parents:
diff changeset
42 \ "All Files (*.*)\t*.*\n"
0efec12f52ac Updated runtime files.
Bram Moolenaar <bram@vim.org>
parents:
diff changeset
43 endif
0efec12f52ac Updated runtime files.
Bram Moolenaar <bram@vim.org>
parents:
diff changeset
44
0efec12f52ac Updated runtime files.
Bram Moolenaar <bram@vim.org>
parents:
diff changeset
45 if exists('b:undo_ftplugin')
0efec12f52ac Updated runtime files.
Bram Moolenaar <bram@vim.org>
parents:
diff changeset
46 let b:undo_ftplugin .= " | setl cms< com< fo< flp< isk< | unlet! b:browsefilter"
0efec12f52ac Updated runtime files.
Bram Moolenaar <bram@vim.org>
parents:
diff changeset
47 else
0efec12f52ac Updated runtime files.
Bram Moolenaar <bram@vim.org>
parents:
diff changeset
48 let b:undo_ftplugin = "setl cms< com< fo< flp< isk< | unlet! b:browsefilter"
0efec12f52ac Updated runtime files.
Bram Moolenaar <bram@vim.org>
parents:
diff changeset
49 endif
0efec12f52ac Updated runtime files.
Bram Moolenaar <bram@vim.org>
parents:
diff changeset
50
0efec12f52ac Updated runtime files.
Bram Moolenaar <bram@vim.org>
parents:
diff changeset
51 let &cpo = s:cpo_save
0efec12f52ac Updated runtime files.
Bram Moolenaar <bram@vim.org>
parents:
diff changeset
52 unlet s:cpo_save
0efec12f52ac Updated runtime files.
Bram Moolenaar <bram@vim.org>
parents:
diff changeset
53
0efec12f52ac Updated runtime files.
Bram Moolenaar <bram@vim.org>
parents:
diff changeset
54 " vim: sw=2