mirror of https://gitee.com/openkylin/qemu.git
check-block: enable iotests with SafeStack
SafeStack is a stack protection technique implemented in llvm. It is enabled with a -fsanitize flag. iotests are currently disabled when any -fsanitize option is used, because such options tend to produce additional warnings and false positives. While common -fsanitize options are used to verify the code and not added in production, SafeStack's main use is in production environments to protect against stack smashing. Since SafeStack does not print any warning or false positive, enable iotests when SafeStack is the only -fsanitize option used. This is likely going to be a production binary and we want to make sure it works correctly. Signed-off-by: Daniele Buono <dbuono@linux.vnet.ibm.com> Message-id: 20200529205122.714-5-dbuono@linux.vnet.ibm.com Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
This commit is contained in:
parent
1e4f6065da
commit
d6d1a65cca
|
@ -21,7 +21,17 @@ if grep -q "CONFIG_GPROF=y" config-host.mak 2>/dev/null ; then
|
|||
exit 0
|
||||
fi
|
||||
|
||||
if grep -q "CFLAGS.*-fsanitize" config-host.mak 2>/dev/null ; then
|
||||
# Disable tests with any sanitizer except for SafeStack
|
||||
CFLAGS=$( grep "CFLAGS.*-fsanitize" config-host.mak 2>/dev/null )
|
||||
SANITIZE_FLAGS=""
|
||||
#Remove all occurrencies of -fsanitize=safe-stack
|
||||
for i in ${CFLAGS}; do
|
||||
if [ "${i}" != "-fsanitize=safe-stack" ]; then
|
||||
SANITIZE_FLAGS="${SANITIZE_FLAGS} ${i}"
|
||||
fi
|
||||
done
|
||||
if echo ${SANITIZE_FLAGS} | grep -q "\-fsanitize" 2>/dev/null; then
|
||||
# Have a sanitize flag that is not allowed, stop
|
||||
echo "Sanitizers are enabled ==> Not running the qemu-iotests."
|
||||
exit 0
|
||||
fi
|
||||
|
|
Loading…
Reference in New Issue