Mercurial > vim
view runtime/syntax/dnsmasq.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 " Maintainer: Thilo Six " Contact: vim-foo@xk2c-foo.de " :3s+-foo++g " Description: highlight dnsmasq configuration files " File: runtime/syntax/dnsmasq.vim " Version: 2.76 " Last Change: 2015 Sep 27 " Modeline: vim: ts=8:sw=2:sts=2: " " License: VIM License " Vim is Charityware, see ":help Uganda" " " Options: You might want to add this to your vimrc: " " if &background == "dark" " let dnsmasq_backrgound_light = 0 " else " let dnsmasq_backrgound_light = 1 " endif " " quit when a syntax file was already loaded if exists("b:current_syntax") || &compatible finish endif let s:cpo_save = &cpo set cpo&vim if !exists("b:dnsmasq_backrgound_light") if exists("dnsmasq_backrgound_light") let b:dnsmasq_backrgound_light = dnsmasq_backrgound_light else let b:dnsmasq_backrgound_light = 0 endif endif " case on syn case match syn match DnsmasqValues "=.*"hs=s+1 contains=DnsmasqComment,DnsmasqSpecial syn match DnsmasqSpecial display '=\|@\|,\|!\|:' nextgroup=DnsmasqValues syn match DnsmasqSpecial "#" syn match DnsmasqIPv4 "\<\(\(25\_[0-5]\|2\_[0-4]\_[0-9]\|\_[01]\?\_[0-9]\_[0-9]\?\)\.\)\{3\}\(25\_[0-5]\|2\_[0-4]\_[0-9]\|\_[01]\?\_[0-9]\_[0-9]\?\)\>" nextgroup=DnsmasqSubnet2,DnsmasqRange syn match DnsmasqSubnet "\<255.\(\(25\_[0-5]\|2\_[0-4]\_[0-9]\|\_[01]\?\_[0-9]\_[0-9]\?\)\.\)\{2\}\(25\_[0-5]\|2\_[0-4]\_[0-9]\|\_[01]\?\_[0-9]\_[0-9]\?\)\>" syn match DnsmasqSubnet2 contained "\/\([0-4]\?[0-9]\)\>" syn match DnsmasqRange contained "-" syn match DnsmasqMac "\<\(\x\x\?:\)\{5}\x\x\?" syn match DnsmasqTime "\<\(\d\{1,3}\)[hm]\>" " String syn match DnsmasqString "\".*\"" contains=@Spell syn match DnsmasqString "'.*'" contains=@Spell " Comments syn keyword DnsmasqTodo FIXME TODO XXX NOTE contained syn match DnsmasqComment "\(^\|\s\+\)#.*$" contains=@Spell,DnsmasqTodo " highlight trailing spaces syn match DnsmasqTrailSpace "[ \t]\+$" syn match DnsmasqTrailSpace "[ \t]\+$" containedin=ALL syn match DnsmasqKeywordSpecial "\<set\>:"me=e-1 syn match DnsmasqKeywordSpecial "\<tag\>:"me=e-1 syn match DnsmasqKeywordSpecial ",\<static\>"hs=s+1 contains=DnsmasqSpecial syn match DnsmasqKeywordSpecial ",\<infinite\>"hs=s+1 contains=DnsmasqSpecial syn match DnsmasqKeywordSpecial "\<encap\>:"me=e-1 syn match DnsmasqKeywordSpecial "\<interface\>:"me=e-1 syn match DnsmasqKeywordSpecial "\<vi-encap\>:"me=e-1 syn match DnsmasqKeywordSpecial "\<net\>:"me=e-1 syn match DnsmasqKeywordSpecial "\<vendor\>:"me=e-1 syn match DnsmasqKeywordSpecial "\<opt\>:"me=e-1 syn match DnsmasqKeywordSpecial "\<option\>:"me=e-1 syn match DnsmasqKeywordSpecial ",\<ignore\>"hs=s+1 contains=DnsmasqSpecial syn match DnsmasqKeywordSpecial "\<id\>:"me=e-1 syn match DnsmasqKeyword "^\s*add-mac\>" syn match DnsmasqKeyword "^\s*add-subnet\>" syn match DnsmasqKeyword "^\s*addn-hosts\>" syn match DnsmasqKeyword "^\s*address\>" syn match DnsmasqKeyword "^\s*alias\>" syn match DnsmasqKeyword "^\s*all-servers\>" syn match DnsmasqKeyword "^\s*auth-zone\>" syn match DnsmasqKeyword "^\s*bind-dynamic\>" syn match DnsmasqKeyword "^\s*bind-interfaces\>" syn match DnsmasqKeyword "^\s*bogus-nxdomain\>" syn match DnsmasqKeyword "^\s*bogus-priv\>" syn match DnsmasqKeyword "^\s*bootp-dynamic\>" syn match DnsmasqKeyword "^\s*bridge-interface\>" syn match DnsmasqKeyword "^\s*cache-size\>" syn match DnsmasqKeyword "^\s*clear-on-reload\>" syn match DnsmasqKeyword "^\s*cname\>" syn match DnsmasqKeyword "^\s*conf-dir\>" syn match DnsmasqKeyword "^\s*conf-file\>" syn match DnsmasqKeyword "^\s*conntrack\>" syn match DnsmasqKeyword "^\s*dhcp-alternate-port\>" syn match DnsmasqKeyword "^\s*dhcp-authoritative\>" syn match DnsmasqKeyword "^\s*dhcp-boot\>" syn match DnsmasqKeyword "^\s*dhcp-broadcast\>" syn match DnsmasqKeyword "^\s*dhcp-circuitid\>" syn match DnsmasqKeyword "^\s*dhcp-client-update\>" syn match DnsmasqKeyword "^\s*dhcp-duid\>" syn match DnsmasqKeyword "^\s*dhcp-fqdn\>" syn match DnsmasqKeyword "^\s*dhcp-generate-names\>" syn match DnsmasqKeyword "^\s*dhcp-host\>" syn match DnsmasqKeyword "^\s*dhcp-hostsfile\>" syn match DnsmasqKeyword "^\s*dhcp-ignore\>" syn match DnsmasqKeyword "^\s*dhcp-ignore-names\>" syn match DnsmasqKeyword "^\s*dhcp-lease-max\>" syn match DnsmasqKeyword "^\s*dhcp-leasefile\>" syn match DnsmasqKeyword "^\s*dhcp-luascript\>" syn match DnsmasqKeyword "^\s*dhcp-mac\>" syn match DnsmasqKeyword "^\s*dhcp-match\>" syn match DnsmasqKeyword "^\s*dhcp-no-override\>" syn match DnsmasqKeyword "^\s*dhcp-option\>" syn match DnsmasqKeyword "^\s*dhcp-option-force\>" syn match DnsmasqKeyword "^\s*dhcp-optsfile\>" syn match DnsmasqKeyword "^\s*dhcp-proxy\>" syn match DnsmasqKeyword "^\s*dhcp-range\>" syn match DnsmasqKeyword "^\s*dhcp-relay\>" syn match DnsmasqKeyword "^\s*dhcp-remoteid\>" syn match DnsmasqKeyword "^\s*dhcp-script\>" syn match DnsmasqKeyword "^\s*dhcp-scriptuser\>" syn match DnsmasqKeyword "^\s*dhcp-sequential-ip\>" syn match DnsmasqKeyword "^\s*dhcp-subscrid\>" syn match DnsmasqKeyword "^\s*dhcp-userclass\>" syn match DnsmasqKeyword "^\s*dhcp-vendorclass\>" syn match DnsmasqKeyword "^\s*dhcp-hostsdir\>" syn match DnsmasqKeyword "^\s*dns-rr\>" syn match DnsmasqKeyword "^\s*dnssec\>" syn match DnsmasqKeyword "^\s*dnssec-check-unsigned\>" syn match DnsmasqKeyword "^\s*dnssec-no-timecheck\>" syn match DnsmasqKeyword "^\s*dnssec-timestamp\>" syn match DnsmasqKeyword "^\s*dns-forward-max\>" syn match DnsmasqKeyword "^\s*domain\>" syn match DnsmasqKeyword "^\s*domain-needed\>" syn match DnsmasqKeyword "^\s*edns-packet-max\>" syn match DnsmasqKeyword "^\s*enable-dbus\>" syn match DnsmasqKeyword "^\s*enable-ra\>" syn match DnsmasqKeyword "^\s*enable-tftp\>" syn match DnsmasqKeyword "^\s*except-interface\>" syn match DnsmasqKeyword "^\s*expand-hosts\>" syn match DnsmasqKeyword "^\s*filterwin2k\>" syn match DnsmasqKeyword "^\s*group\>" syn match DnsmasqKeyword "^\s*host-record\>" syn match DnsmasqKeyword "^\s*interface\>" syn match DnsmasqKeyword "^\s*interface-name\>" syn match DnsmasqKeyword "^\s*ipset\>" syn match DnsmasqKeyword "^\s*ignore-address\>" syn match DnsmasqKeyword "^\s*keep-in-foreground\>" syn match DnsmasqKeyword "^\s*leasefile-ro\>" syn match DnsmasqKeyword "^\s*listen-address\>" syn match DnsmasqKeyword "^\s*local\>" syn match DnsmasqKeyword "^\s*localmx\>" syn match DnsmasqKeyword "^\s*local-ttl\>" syn match DnsmasqKeyword "^\s*local-service\>" syn match DnsmasqKeyword "^\s*localise-queries\>" syn match DnsmasqKeyword "^\s*log-async\>" syn match DnsmasqKeyword "^\s*log-dhcp\>" syn match DnsmasqKeyword "^\s*log-facility\>" syn match DnsmasqKeyword "^\s*log-queries\>" syn match DnsmasqKeyword "^\s*max-ttl\>" syn match DnsmasqKeyword "^\s*max-cache-ttl\>" syn match DnsmasqKeyword "^\s*min-cache-ttl\>" syn match DnsmasqKeyword "^\s*min-port\>" syn match DnsmasqKeyword "^\s*mx-host\>" syn match DnsmasqKeyword "^\s*mx-target\>" syn match DnsmasqKeyword "^\s*naptr-record\>" syn match DnsmasqKeyword "^\s*neg-ttl\>" syn match DnsmasqKeyword "^\s*no-daemon\>" syn match DnsmasqKeyword "^\s*no-dhcp-interface\>" syn match DnsmasqKeyword "^\s*no-hosts\>" syn match DnsmasqKeyword "^\s*no-negcache\>" syn match DnsmasqKeyword "^\s*no-ping\>" syn match DnsmasqKeyword "^\s*no-poll\>" syn match DnsmasqKeyword "^\s*no-resolv\>" syn match DnsmasqKeyword "^\s*pid-file\>" syn match DnsmasqKeyword "^\s*port\>" syn match DnsmasqKeyword "^\s*proxy-dnssec\>" syn match DnsmasqKeyword "^\s*ptr-record\>" syn match DnsmasqKeyword "^\s*pxe-prompt\>" syn match DnsmasqKeyword "^\s*pxe-service\>" syn match DnsmasqKeyword "^\s*query-port\>" syn match DnsmasqKeyword "^\s*quiet-ra\>" syn match DnsmasqKeyword "^\s*quiet-dhcp\>" syn match DnsmasqKeyword "^\s*quiet-dhcp6\>" syn match DnsmasqKeyword "^\s*ra-param\>" syn match DnsmasqKeyword "^\s*read-ethers\>" syn match DnsmasqKeyword "^\s*rebind-domain-ok\>" syn match DnsmasqKeyword "^\s*rebind-localhost-ok\>" syn match DnsmasqKeyword "^\s*resolv-file\>" syn match DnsmasqKeyword "^\s*rev-server\>" syn match DnsmasqKeyword "^\s*selfmx\>" syn match DnsmasqKeyword "^\s*server\>" syn match DnsmasqKeyword "^\s*servers-file\>" syn match DnsmasqKeyword "^\s*srv-host\>" syn match DnsmasqKeyword "^\s*stop-dns-rebind\>" syn match DnsmasqKeyword "^\s*strict-order\>" syn match DnsmasqKeyword "^\s*synth-domain\>" syn match DnsmasqKeyword "^\s*tag-if\>" syn match DnsmasqKeyword "^\s*test\>" syn match DnsmasqKeyword "^\s*tftp-max\>" syn match DnsmasqKeyword "^\s*tftp-lowercase\>" syn match DnsmasqKeyword "^\s*tftp-no-blocksize\>" syn match DnsmasqKeyword "^\s*tftp-no-fail\>" syn match DnsmasqKeyword "^\s*tftp-port-range\>" syn match DnsmasqKeyword "^\s*tftp-root\>" syn match DnsmasqKeyword "^\s*tftp-secure\>" syn match DnsmasqKeyword "^\s*tftp-unique-root\>" syn match DnsmasqKeyword "^\s*txt-record\>" syn match DnsmasqKeyword "^\s*user\>" syn match DnsmasqKeyword "^\s*version\>" if b:dnsmasq_backrgound_light == 1 hi def DnsmasqKeyword ctermfg=DarkGreen guifg=DarkGreen else hi def link DnsmasqKeyword Keyword endif hi def link DnsmasqKeywordSpecial Type hi def link DnsmasqTodo Todo hi def link DnsmasqSpecial Constant hi def link DnsmasqIPv4 Identifier hi def link DnsmasqSubnet2 DnsmasqSubnet hi def link DnsmasqSubnet DnsmasqMac hi def link DnsmasqRange DnsmasqMac hi def link DnsmasqMac Preproc hi def link DnsmasqTime Preproc hi def link DnsmasqComment Comment hi def link DnsmasqTrailSpace DiffDelete hi def link DnsmasqString Constant hi def link DnsmasqValues Normal let b:current_syntax = "dnsmasq" let &cpo = s:cpo_save unlet s:cpo_save