[PATCH] fuzz: disable leak-detection for oss-fuzz builds

Alexander Bulekov posted 1 patch 1 year, 5 months ago
Patches applied successfully (tree, apply log)
git fetch https://github.com/patchew-project/qemu tags/patchew/20240527150001.325565-1-alxndr@bu.edu
Maintainers: Alexander Bulekov <alxndr@bu.edu>, Paolo Bonzini <pbonzini@redhat.com>, Bandan Das <bsd@redhat.com>, Stefan Hajnoczi <stefanha@redhat.com>, Thomas Huth <thuth@redhat.com>, Darren Kenny <darren.kenny@oracle.com>, Qiuhao Li <Qiuhao.Li@outlook.com>
scripts/oss-fuzz/build.sh | 1 +
1 file changed, 1 insertion(+)
[PATCH] fuzz: disable leak-detection for oss-fuzz builds
Posted by Alexander Bulekov 1 year, 5 months ago
When we are building for OSS-Fuzz, we want to ensure that the fuzzer
targets are actually created, regardless of leaks. Leaks will be
detected by the subsequent tests of the individual fuzz-targets.

Signed-off-by: Alexander Bulekov <alxndr@bu.edu>
---
 scripts/oss-fuzz/build.sh | 1 +
 1 file changed, 1 insertion(+)

diff --git a/scripts/oss-fuzz/build.sh b/scripts/oss-fuzz/build.sh
index 5238f83343..7398298173 100755
--- a/scripts/oss-fuzz/build.sh
+++ b/scripts/oss-fuzz/build.sh
@@ -92,6 +92,7 @@ make install DESTDIR=$DEST_DIR/qemu-bundle
 rm -rf $DEST_DIR/qemu-bundle/opt/qemu-oss-fuzz/bin
 rm -rf $DEST_DIR/qemu-bundle/opt/qemu-oss-fuzz/libexec
 
+export ASAN_OPTIONS=detect_leaks=0
 targets=$(./qemu-fuzz-i386 | grep generic-fuzz | awk '$1 ~ /\*/  {print $2}')
 base_copy="$DEST_DIR/qemu-fuzz-i386-target-$(echo "$targets" | head -n 1)"
 
-- 
2.45.1
Re: [PATCH] fuzz: disable leak-detection for oss-fuzz builds
Posted by Thomas Huth 1 year, 5 months ago
On 27/05/2024 16.59, Alexander Bulekov wrote:
> When we are building for OSS-Fuzz, we want to ensure that the fuzzer
> targets are actually created, regardless of leaks. Leaks will be
> detected by the subsequent tests of the individual fuzz-targets.
> 
> Signed-off-by: Alexander Bulekov <alxndr@bu.edu>
> ---
>   scripts/oss-fuzz/build.sh | 1 +
>   1 file changed, 1 insertion(+)
> 
> diff --git a/scripts/oss-fuzz/build.sh b/scripts/oss-fuzz/build.sh
> index 5238f83343..7398298173 100755
> --- a/scripts/oss-fuzz/build.sh
> +++ b/scripts/oss-fuzz/build.sh
> @@ -92,6 +92,7 @@ make install DESTDIR=$DEST_DIR/qemu-bundle
>   rm -rf $DEST_DIR/qemu-bundle/opt/qemu-oss-fuzz/bin
>   rm -rf $DEST_DIR/qemu-bundle/opt/qemu-oss-fuzz/libexec
>   
> +export ASAN_OPTIONS=detect_leaks=0
>   targets=$(./qemu-fuzz-i386 | grep generic-fuzz | awk '$1 ~ /\*/  {print $2}')
>   base_copy="$DEST_DIR/qemu-fuzz-i386-target-$(echo "$targets" | head -n 1)"

I've applied your patch, but it seems the leak is not detected later in the 
individual fuzz-targets anymore. That's strange... did you have a closer 
look already where this leak here comes from?

  Thomas
Re: [PATCH] fuzz: disable leak-detection for oss-fuzz builds
Posted by Thomas Huth 1 year, 5 months ago
On 27/05/2024 16.59, Alexander Bulekov wrote:
> When we are building for OSS-Fuzz, we want to ensure that the fuzzer
> targets are actually created, regardless of leaks. Leaks will be
> detected by the subsequent tests of the individual fuzz-targets.
> 
> Signed-off-by: Alexander Bulekov <alxndr@bu.edu>
> ---
>   scripts/oss-fuzz/build.sh | 1 +
>   1 file changed, 1 insertion(+)
> 
> diff --git a/scripts/oss-fuzz/build.sh b/scripts/oss-fuzz/build.sh
> index 5238f83343..7398298173 100755
> --- a/scripts/oss-fuzz/build.sh
> +++ b/scripts/oss-fuzz/build.sh
> @@ -92,6 +92,7 @@ make install DESTDIR=$DEST_DIR/qemu-bundle
>   rm -rf $DEST_DIR/qemu-bundle/opt/qemu-oss-fuzz/bin
>   rm -rf $DEST_DIR/qemu-bundle/opt/qemu-oss-fuzz/libexec
>   
> +export ASAN_OPTIONS=detect_leaks=0
>   targets=$(./qemu-fuzz-i386 | grep generic-fuzz | awk '$1 ~ /\*/  {print $2}')
>   base_copy="$DEST_DIR/qemu-fuzz-i386-target-$(echo "$targets" | head -n 1)"

Would it maybe also make sense to check that $targets is not empty and error 
out in case it is?

  Thomas
Re: [PATCH] fuzz: disable leak-detection for oss-fuzz builds
Posted by Philippe Mathieu-Daudé 1 year, 5 months ago
On 27/5/24 16:59, Alexander Bulekov wrote:
> When we are building for OSS-Fuzz, we want to ensure that the fuzzer
> targets are actually created, regardless of leaks. Leaks will be
> detected by the subsequent tests of the individual fuzz-targets.
> 
> Signed-off-by: Alexander Bulekov <alxndr@bu.edu>
> ---
>   scripts/oss-fuzz/build.sh | 1 +
>   1 file changed, 1 insertion(+)
> 
> diff --git a/scripts/oss-fuzz/build.sh b/scripts/oss-fuzz/build.sh
> index 5238f83343..7398298173 100755
> --- a/scripts/oss-fuzz/build.sh
> +++ b/scripts/oss-fuzz/build.sh
> @@ -92,6 +92,7 @@ make install DESTDIR=$DEST_DIR/qemu-bundle
>   rm -rf $DEST_DIR/qemu-bundle/opt/qemu-oss-fuzz/bin
>   rm -rf $DEST_DIR/qemu-bundle/opt/qemu-oss-fuzz/libexec
>   
> +export ASAN_OPTIONS=detect_leaks=0
>   targets=$(./qemu-fuzz-i386 | grep generic-fuzz | awk '$1 ~ /\*/  {print $2}')
>   base_copy="$DEST_DIR/qemu-fuzz-i386-target-$(echo "$targets" | head -n 1)"
>   

Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org>