[openssh-commits] [openssh] 02/03: Add GCC address sanitizer build/test.

git+noreply at mindrot.org git+noreply at mindrot.org
Tue Jul 5 18:38:17 AEST 2022


This is an automated email from the git hooks/post-receive script.

dtucker pushed a commit to branch master
in repository openssh.

commit 48cc68b69118b3ce8d07fd4f82e00d58667d5379
Author: Darren Tucker <dtucker at dtucker.net>
Date:   Tue Jul 5 16:23:28 2022 +1000

    Add GCC address sanitizer build/test.
---
 .github/configs     | 25 ++++++++++++++++---------
 .github/setup_ci.sh |  2 ++
 2 files changed, 18 insertions(+), 9 deletions(-)

diff --git a/.github/configs b/.github/configs
index 7ebb832e..ebbfa5b4 100755
--- a/.github/configs
+++ b/.github/configs
@@ -42,7 +42,19 @@ case "$config" in
 	CFLAGS="-Wall -Wextra -O2 -Wno-error=implicit-fallthrough -Wno-error=unused-parameter"
 	CONFIGFLAGS="--with-pam --with-Werror"
 	;;
-    clang-sanitize-*)
+    *-sanitize-*)
+	case "$config" in
+	gcc-*)
+		CC=gcc
+		;;
+	clang-*)
+		# Find the newest available version of clang
+		for i in `seq 10 99`; do
+		    clang="`which clang-$i 2>/dev/null`"
+		    [ -x "$clang" ] && CC="$clang"
+		done
+		;;
+	esac
 	# Put Sanitizer logs in regress dir.
 	SANLOGS=`pwd`/regress
 	# - We replace chroot with chdir so that the sanitizer in the preauth
@@ -52,11 +64,11 @@ case "$config" in
 	# - openssl and zlib trip ASAN.
 	# - sp_pwdp returned by getspnam trips ASAN, hence disabling shadow.
 	case "$config" in
-	clang-sanitize-address)
+	*-sanitize-address)
 	    CFLAGS="-fsanitize=address -fno-omit-frame-pointer"
 	    LDFLAGS="-fsanitize=address"
-	    CPPFLAGS='-Dchroot=chdir -Dexplicit_bzero=bzero -DASAN_OPTIONS=\"detect_leaks=0:log_path='$SANLOGS'/asan.log\"'
-	    CONFIGFLAGS="--without-openssl --without-zlib --without-shadow"
+	    CPPFLAGS='-Dchroot=chdir -Dexplicit_bzero=bzero -D_FORTIFY_SOURCE=0 -DASAN_OPTIONS=\"detect_leaks=0:log_path='$SANLOGS'/asan.log\"'
+	    CONFIGFLAGS=""
 	    TEST_TARGET="t-exec"
 	    ;;
 	clang-sanitize-memory)
@@ -74,11 +86,6 @@ case "$config" in
 	     echo unknown sanitize option;
 	     exit 1;;
 	esac
-	# Find the newest available version of clang
-	for i in `seq 10 99`; do
-	    clang=$(which clang-$i 2>/dev/null)
-	    [ -x "$clang" ] && CC="$clang"
-	done
 	features="--disable-security-key --disable-pkcs11"
 	hardening="--without-sandbox --without-hardening --without-stackprotect"
 	privsep="--with-privsep-user=root"
diff --git a/.github/setup_ci.sh b/.github/setup_ci.sh
index cd8b72d2..fe5e13ff 100755
--- a/.github/setup_ci.sh
+++ b/.github/setup_ci.sh
@@ -40,6 +40,8 @@ for TARGET in $TARGETS; do
     clang-sanitize*)
         PACKAGES="$PACKAGES clang-12"
         ;;
+    gcc-sanitize*)
+        ;;
     clang-*|gcc-*)
         compiler=$(echo $TARGET | sed 's/-Werror//')
         PACKAGES="$PACKAGES $compiler"

-- 
To stop receiving notification emails like this one, please contact
djm at mindrot.org.


More information about the openssh-commits mailing list