Skip to content

Fixed bug #7860 : Crash potentially caused by BETWEEN Operator #5124

Fixed bug #7860 : Crash potentially caused by BETWEEN Operator

Fixed bug #7860 : Crash potentially caused by BETWEEN Operator #5124

Workflow file for this run

name: CI
on: [push, pull_request]
jobs:
build:
runs-on: ${{ matrix.os }}
container: ${{ matrix.container }}
strategy:
fail-fast: false
matrix:
include:
- os: ubuntu-20.04
platform: x64
- os: ubuntu-20.04
platform: x64
container: alpine
- os: macOS-latest
platform: x64
steps:
- uses: actions/checkout@v1
with:
fetch-depth: 10
- name: Prepare (Linux)
if: matrix.os == 'ubuntu-20.04' && matrix.container != 'alpine'
run: |
sudo apt-get install libtool-bin libtomcrypt1 libtomcrypt-dev libtommath1 libtommath-dev libicu-dev zlib1g-dev
- name: Build (Linux)
if: matrix.os == 'ubuntu-20.04' && matrix.container != 'alpine'
run: |
CC=clang CXX=clang++ ./autogen.sh --enable-binreloc --prefix=/opt/firebird
make -j4
make dist
tar xzvf gen/Firebird-[0-9]*.tar.gz
(cd Firebird-[0-9]*; sudo ./install.sh -silent)
- name: Prepare (Linux, Alpine)
if: matrix.container == 'alpine'
run: apk update && apk --no-cache --update add build-base libtool git autoconf automake zlib-dev icu-dev ncurses-dev libedit-dev linux-headers tar
- name: Build (Linux, Alpine)
if: matrix.container == 'alpine'
run: |
./autogen.sh --enable-binreloc-threads --with-builtin-tommath --prefix=/opt/firebird
make -j4
make dist
tar xzvf gen/Firebird-[0-9]*.tar.gz
- name: Prepare (MacOS)
if: matrix.os == 'macOS-latest'
run: |
brew install automake libtool
export LIBTOOLIZE=glibtoolize
export LIBTOOL=glibtool
mkdir extern/icu-macos
pushd extern/icu-macos
curl -OL https://github.com/unicode-org/icu/releases/download/release-59-2/icu4c-59_2-src.tgz
curl -OL https://github.com/unicode-org/icu/commit/24aeb9a5a5874f4ce5db912e30670ac3ae236971.patch
tar xzf icu4c-59_2-src.tgz
ICU_INSTALL_PATH=`pwd`/install
cd icu/source
patch -p3 < ../../24aeb9a5a5874f4ce5db912e30670ac3ae236971.patch
./runConfigureICU MacOSX --prefix=$ICU_INSTALL_PATH
make -j4
make install
install_name_tool -id @rpath/lib/libicuuc.dylib $ICU_INSTALL_PATH/lib/libicuuc.dylib
install_name_tool -id @rpath/lib/libicui18n.dylib $ICU_INSTALL_PATH/lib/libicui18n.dylib
install_name_tool -id @rpath/lib/libicudata.dylib $ICU_INSTALL_PATH/lib/libicudata.dylib
install_name_tool -change libicudata.59.dylib @loader_path/libicudata.59.dylib $ICU_INSTALL_PATH/lib/libicuuc.59.dylib
install_name_tool -change libicudata.59.dylib @loader_path/libicudata.59.dylib $ICU_INSTALL_PATH/lib/libicui18n.59.dylib
install_name_tool -change libicuuc.59.dylib @loader_path/libicuuc.59.dylib $ICU_INSTALL_PATH/lib/libicui18n.59.dylib
popd
mkdir -p gen/Release/firebird/lib
mkdir -p gen/Debug/firebird/lib
cp $ICU_INSTALL_PATH/lib/*.dylib gen/Release/firebird/lib/
cp $ICU_INSTALL_PATH/lib/*.dylib gen/Debug/firebird/lib/
- name: Build (MacOS)
if: matrix.os == 'macOS-latest'
run: |
export LIBTOOLIZE=glibtoolize
export LIBTOOL=glibtool
ICU_INSTALL_PATH=`pwd`/extern/icu-macos/install
export C_INCLUDE_PATH="$ICU_INSTALL_PATH/include:$C_INCLUDE_PATH"
export CPLUS_INCLUDE_PATH="$ICU_INSTALL_PATH/include:$CPLUS_INCLUDE_PATH"
LIBRARY_PATH="$ICU_INSTALL_PATH/lib:$LIBRARY_PATH" ./autogen.sh --with-builtin-tommath
make -j4
(cd gen; make -B -f make.platform.postfix ICU_LOC="$ICU_INSTALL_PATH/lib/")
(cd gen; make -B -f Makefile.install)
# Rename directory to make sure the build is relocatable.
mv gen gen2
sudo installer -pkg gen2/Release/*.pkg -verbose -target /
export FIREBIRD_LOCK=`pwd`/temp
echo "create database 't.fdb'; select '1' from rdb\$database; select _win1252 '2' from rdb\$database; select _utf8 '3' collate unicode from rdb\$database;" | /Library/Frameworks/Firebird.framework/Resources/bin/isql
echo "create database 'localhost:/tmp/t.fdb' user sysdba password 'masterkey'; select '11' from rdb\$database; select _win1252 '22' from rdb\$database; select _utf8 '33' collate unicode from rdb\$database;" | /Library/Frameworks/Firebird.framework/Resources/bin/isql
mv gen2 gen
mkdir gen/artifacts
mv gen/Release/*.pkg gen/artifacts
- name: Prepare (Windows)
if: matrix.os == 'windows-2016'
shell: cmd
run: |
for /r %%i in (*.bat) do unix2dos "%%i"
- name: Build (Windows)
if: matrix.os == 'windows-2016'
shell: cmd
env:
PLATFORM: ${{ matrix.platform }}
run: |
set
if "%PLATFORM%" == "x64" set FB_VS_ARCH=amd64
if "%PLATFORM%" == "x64" set FB_PROCESSOR_ARCHITECTURE=AMD64
if "%PLATFORM%" == "x64" set FB_OUTPUT_SUFFIX=x64
if "%PLATFORM%" == "x86" set FB_VS_ARCH=x86
if "%PLATFORM%" == "x86" set FB_PROCESSOR_ARCHITECTURE=x86
if "%PLATFORM%" == "x86" set FB_OUTPUT_SUFFIX=win32
set
call "C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\Common7\Tools\VsDevCmd.bat" -arch=%FB_VS_ARCH%
cd builds\win32
run_all.bat JUSTBUILD
- name: Upload (Linux)
if: matrix.os == 'ubuntu-20.04' && matrix.container != 'alpine'
uses: actions/upload-artifact@master
with:
name: firebird-linux
path: gen/Firebird-[0-9]*.tar.gz
- name: Upload (Linux, Alpine)
if: matrix.container == 'alpine'
uses: actions/upload-artifact@master
with:
name: firebird-linux-alpine
path: gen/Firebird-[0-9]*.tar.gz
- name: Upload (MacOS)
if: matrix.os == 'macOS-latest'
uses: actions/upload-artifact@master
with:
name: firebird-macos
path: gen/artifacts
- name: Upload (Windows x64)
if: matrix.os == 'windows-2016' && matrix.platform == 'x64'
uses: actions/upload-artifact@master
with:
name: firebird-windows-x64
path: output_x64
- name: Upload (Windows x86)
if: matrix.os == 'windows-2016' && matrix.platform == 'x86'
uses: actions/upload-artifact@master
with:
name: firebird-windows-x86
path: output_win32