Mercurial > vim
view runtime/syntax/datascript.vim @ 33096:828bcb1a37e7 v9.0.1833
patch 9.0.1833: [security] runtime file fixes
Commit: https://github.com/vim/vim/commit/816fbcc262687b81fc46f82f7bbeb1453addfe0c
Author: Christian Brabandt <cb@256bit.org>
Date: Thu Aug 31 23:52:30 2023 +0200
patch 9.0.1833: [security] runtime file fixes
Problem: runtime files may execute code in current dir
Solution: only execute, if not run from current directory
The perl, zig and ruby filetype plugins and the zip and gzip autoload
plugins may try to load malicious executable files from the current
working directory. This is especially a problem on windows, where the
current directory is implicitly in your $PATH and windows may even run a
file with the extension `.bat` because of $PATHEXT.
So make sure that we are not trying to execute a file from the current
directory. If this would be the case, error out (for the zip and gzip)
plugins or silently do not run those commands (for the ftplugins).
This assumes, that only the current working directory is bad. For all
other directories, it is assumed that those directories were
intentionally set to the $PATH by the user.
Signed-off-by: Christian Brabandt <cb@256bit.org>
author | Christian Brabandt <cb@256bit.org> |
---|---|
date | Fri, 01 Sep 2023 00:00:02 +0200 |
parents | 43efa4f5a8ea |
children |
line wrap: on
line source
" Vim syntax file " Language: DataScript " Maintainer: Dominique Pelle <dominique.pelle@gmail.com> " Last Change: 2015 Jul 30 " " DataScript is a formal language for modelling binary datatypes, " bitstreams or file formats. For more information, see: " " http://dstools.sourceforge.net/DataScriptLanguageOverview.html " quit when a syntax file was already loaded if exists("b:current_syntax") finish endif let s:keepcpo= &cpo set cpo&vim syn keyword dsPackage import package syn keyword dsType bit bool string syn keyword dsType int int8 int16 int32 int64 syn keyword dsType uint8 uint16 uint32 uint64 syn keyword dsType varint16 varint32 varint64 syn keyword dsType varuint16 varuint32 varuint64 syn keyword dsType leint16 leint32 leint64 syn keyword dsType leuint16 leuint32 leuint64 syn keyword dsEndian little big syn keyword dsAlign align syn keyword dsLabel case default syn keyword dsConditional if condition syn keyword dsBoolean true false syn keyword dsCompound union choice on enum bitmask subtype explicit syn keyword dsKeyword function return syn keyword dsOperator sizeof bitsizeof lengthof is sum forall in syn keyword dsStorageClass const syn keyword dsTodo contained TODO FIXME XXX syn keyword dsSql sql sql_table sql_database sql_pragma sql_index syn keyword dsSql sql_integer sql_metadata sql_key sql_virtual syn keyword dsSql using reference_key foreign_key to " dsCommentGroup allows adding matches for special things in comments. syn cluster dsCommentGroup contains=dsTodo syn match dsOffset display "^\s*[a-zA-Z_:\.][a-zA-Z0-9_:\.]*\s*:" syn match dsNumber display "\<\d\+\>" syn match dsNumberHex display "\<0[xX]\x\+\>" syn match dsNumberBin display "\<[01]\+[bB]\>" contains=dsBinaryB syn match dsBinaryB display contained "[bB]\>" syn match dsOctal display "\<0\o\+\>" contains=dsOctalZero syn match dsOctalZero display contained "\<0" syn match dsOctalError display "\<0\o*[89]\d*\>" syn match dsCommentError display "\*/" syn match dsCommentStartError display "/\*"me=e-1 contained syn region dsCommentL \ start="//" skip="\\$" end="$" keepend \ contains=@dsCommentGroup,@Spell syn region dsComment \ matchgroup=dsCommentStart start="/\*" end="\*/" \ contains=@dsCommentGroup,dsCommentStartError,@Spell extend syn region dsString \ start=+L\="+ skip=+\\\\\|\\"+ end=+"+ contains=@Spell syn sync ccomment dsComment " Define the default highlighting. hi def link dsType Type hi def link dsEndian StorageClass hi def link dsStorageClass StorageClass hi def link dsAlign Label hi def link dsLabel Label hi def link dsOffset Label hi def link dsSql PreProc hi def link dsCompound Structure hi def link dsConditional Conditional hi def link dsBoolean Boolean hi def link dsKeyword Statement hi def link dsString String hi def link dsNumber Number hi def link dsNumberBin Number hi def link dsBinaryB Special hi def link dsOctal Number hi def link dsOctalZero Special hi def link dsOctalError Error hi def link dsNumberHex Number hi def link dsTodo Todo hi def link dsOperator Operator hi def link dsPackage Include hi def link dsCommentError Error hi def link dsCommentStartError Error hi def link dsCommentStart dsComment hi def link dsCommentL dsComment hi def link cCommentL dsComment hi def link dsComment Comment let b:current_syntax = "datascript" let &cpo = s:keepcpo unlet s:keepcpo