view runtime/spell/ca/main.aap @ 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 b9e314fe473f
children
line wrap: on
line source

# Aap recipe for Catelan (Spain) Vim spell files.

# Use a freshly compiled Vim if it exists.
@if os.path.exists('../../../src/vim'):
    VIM = ../../../src/vim
@else:
    :progsearch VIM vim

SPELLDIR = ..
FILES    = ca_ES.aff ca_ES.dic

all: $SPELLDIR/ca.latin1.spl $SPELLDIR/ca.utf-8.spl ../README_ca.txt

$SPELLDIR/ca.latin1.spl : $FILES
        :sys env LANG=ca_ES.ISO8859-1
		$VIM -u NONE -e -c "mkspell! $SPELLDIR/ca ca_ES" -c q

$SPELLDIR/ca.utf-8.spl : $FILES
        :sys env LANG=ca_ES.UTF-8
		$VIM -u NONE -e -c "mkspell! $SPELLDIR/ca ca_ES" -c q

../README_ca.txt : README_ca_ES.txt
        :copy $source $target

#
# Fetching the files from OpenOffice.org.
#
OODIR = http://ftp.services.openoffice.org/pub/OpenOffice.org/contrib/dictionaries
:attr {fetch = $OODIR/%file%} ca_ES.zip

# The files don't depend on the .zip file so that we can delete it.
# Only download the zip file if the targets don't exist.
# Make sure the files are in Unix fileformat
ca_ES.aff ca_ES.dic: {buildcheck=}
        :assertpkg unzip patch
        :fetch ca_ES.zip
        :sys $UNZIP ca_ES.zip
        :delete ca_ES.zip
        :sys $VIM ca_ES.aff -u NONE -c "set ff=unix" -c "update" -c q
        :sys $VIM ca_ES.dic -u NONE -c "set ff=unix" -c "update" -c q
        @if not os.path.exists('ca_ES.orig.aff'):
            :copy ca_ES.aff ca_ES.orig.aff
        @if not os.path.exists('ca_ES.orig.dic'):
            :copy ca_ES.dic ca_ES.orig.dic
        @if os.path.exists('ca_ES.diff'):
            :sys patch <ca_ES.diff


# Generate diff files, so that others can get the OpenOffice files and apply
# the diffs to get the Vim versions.

diff:
        :assertpkg diff
        :sys {force} diff -a -C 1 ca_ES.orig.aff ca_ES.aff >ca_ES.diff
        :sys {force} diff -a -C 1 ca_ES.orig.dic ca_ES.dic >>ca_ES.diff


# Check for updated OpenOffice spell files.  When there are changes the
# ".new.aff" and ".new.dic" files are left behind for manual inspection.

check:
        :assertpkg unzip diff
        :fetch ca_ES.zip
        :mkdir tmp
        :cd tmp
        @try:
            @import stat
            :sys $UNZIP ../ca_ES.zip
            :sys {force} diff ../ca_ES.orig.aff ca_ES.aff >d
            @if os.stat('d')[stat.ST_SIZE] > 0:
                :copy ca_ES.aff ../ca_ES.new.aff
            :sys {force} diff ../ca_ES.orig.dic ca_ES.dic >d
            @if os.stat('d')[stat.ST_SIZE] > 0:
                :copy ca_ES.dic ../ca_ES.new.dic
        @finally:
            :cd ..
            :delete {r}{f}{q} tmp
            :delete ca_ES.zip


# vim: set sts=4 sw=4 :