Mercurial > dropbear
view .travis.yml @ 1715:3974f087d9c0
Disallow leading lines before the ident for server (#102)
Per RFC4253 4.2 clients must be able to process other lines of data
before the version string, server behavior is not defined neither
with MUST/SHOULD nor with MAY.
If server process up to 50 lines too - it may cause too long hanging
session with invalid/evil client that consume host resources and
potentially may lead to DDoS on poor embedded boxes.
Let's require first line from client to be version string and fail
early if it's not - matches both RFC and real OpenSSH behavior.
author | Vladislav Grishenko <themiron@users.noreply.github.com> |
---|---|
date | Mon, 15 Jun 2020 18:22:18 +0500 |
parents | f9ad4d39e388 |
children | d529a52b2f7c 32307118bc26 |
line wrap: on
line source
language: c git: depth: 3 # use focal which provides libtommath 1.20 dist: focal matrix: include: - name: "plain linux" compiler: gcc env: WEXTRAFLAGS=-Werror - name: "multi binary" env: MULTI=1 WEXTRAFLAGS=-Werror - name: "bundled libtom, xenial, no writev()" # NOWRITEV is unrelated to libtom/xenial, test here to save a job env: CONFIGURE_FLAGS=--enable-bundled-libtom WEXTRAFLAGS=-Werror NOWRITEV=1 # can use an older distro with bundled libtom dist: xenial - name: "linux clang" os: linux compiler: clang env: WEXTRAFLAGS=-Werror - name: "osx" os: osx compiler: clang # OS X says daemon() and utmp are deprecated env: WEXTRAFLAGS="-Wno-deprecated-declarations -Werror" # Note: the fuzzing malloc wrapper doesn't replace free() in system libtomcrypt, so need bundled. - name: "fuzzing" env: DO_FUZZ=1 CONFIGURE_FLAGS="--enable-fuzz --disable-harden --enable-bundled-libtom" WEXTRAFLAGS=-Werror LDFLAGS=-fsanitize=address EXTRACFLAGS=-fsanitize=address CXX=clang++ compiler: clang # container-based builds addons: apt: packages: # packages list: https://github.com/travis-ci/apt-package-whitelist/blob/master/ubuntu-precise - zlib1g-dev - libtomcrypt-dev - libtommath-dev - mercurial before_install: - if [ "$CC" = "clang" ]; then WEXTRAFLAGS="$WEXTRAFLAGS -Wno-error=incompatible-library-redeclaration" ; fi # workaround install: - autoconf - autoheader - ./configure $CONFIGURE_FLAGS CFLAGS="-O2 -Wall -Wno-pointer-sign $WEXTRAFLAGS $EXTRACFLAGS" --prefix="$HOME/inst" || (cat config.log; exit 1) - if [ "$NOWRITEV" = "1" ]; then sed -i -e s/HAVE_WRITEV/DONT_HAVE_WRITEV/ config.h ; fi - make lint - make -j3 - test -z $DO_FUZZ || make fuzzstandalone # avoid concurrent install, osx/freebsd is racey (https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=208093) - make install script: - ~/inst/bin/dropbearkey -t rsa -f testrsa - ~/inst/bin/dropbearkey -t dss -f testdss - ~/inst/bin/dropbearkey -t ecdsa -f testec256 -s 256 - ~/inst/bin/dropbearkey -t ecdsa -f testec384 -s 384 - ~/inst/bin/dropbearkey -t ecdsa -f testec521 -s 521 - ~/inst/bin/dropbearkey -t ed25519 -f tested25519 - test -z $DO_FUZZ || ./fuzzers_test.sh branches: only: - master - coverity