[PATCH-for-5.2] scripts/oss-fuzz: rename bin/qemu-fuzz-i386

Alexander Bulekov posted 1 patch 3 years, 6 months ago
Test checkpatch passed
Patches applied successfully (tree, apply log)
git fetch https://github.com/patchew-project/qemu tags/patchew/20201101212245.185819-1-alxndr@bu.edu
Maintainers: Thomas Huth <thuth@redhat.com>, Paolo Bonzini <pbonzini@redhat.com>, Alexander Bulekov <alxndr@bu.edu>, Bandan Das <bsd@redhat.com>, Stefan Hajnoczi <stefanha@redhat.com>
scripts/oss-fuzz/build.sh | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
[PATCH-for-5.2] scripts/oss-fuzz: rename bin/qemu-fuzz-i386
Posted by Alexander Bulekov 3 years, 6 months ago
OSS-Fuzz changed the way it scans for fuzzers in $DEST_DIR. The new code
also scans subdirectories for fuzzers. This means that OSS-Fuzz is
considering bin/qemu-fuzz-i386 as an independent fuzzer (it is not - it
requires a --fuzz-target argument). This has led to coverage-build
failures and false crash reports. To work around this, we take advantage
of OSS-Fuzz' filename extension check - OSS-Fuzz will not run anything
that has an extension that is not ".exe":
https://github.com/google/oss-fuzz/blob/master/infra/utils.py#L115

Reported-by: OSS-Fuzz (Issue 26725)
Reported-by: OSS-Fuzz (Issue 26679)
Signed-off-by: Alexander Bulekov <alxndr@bu.edu>
---

Also, for context:
https://github.com/google/oss-fuzz/issues/4575

 scripts/oss-fuzz/build.sh | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/scripts/oss-fuzz/build.sh b/scripts/oss-fuzz/build.sh
index fcae4a0c26..3b1c82b63d 100755
--- a/scripts/oss-fuzz/build.sh
+++ b/scripts/oss-fuzz/build.sh
@@ -91,7 +91,7 @@ make "-j$(nproc)" qemu-fuzz-i386 V=1
 # Copy over the datadir
 cp  -r ../pc-bios/ "$DEST_DIR/pc-bios"
 
-cp "./qemu-fuzz-i386" "$DEST_DIR/bin/"
+cp "./qemu-fuzz-i386" "$DEST_DIR/bin/qemu-fuzz-i386.base"
 
 # Run the fuzzer with no arguments, to print the help-string and get the list
 # of available fuzz-targets. Copy over the qemu-fuzz-i386, naming it according
@@ -104,7 +104,7 @@ do
     # that are thin wrappers around this target that set the required
     # environment variables according to predefined configs.
     if [ "$target" != "generic-fuzz" ]; then
-        ln  "$DEST_DIR/bin/qemu-fuzz-i386" \
+        ln  "$DEST_DIR/bin/qemu-fuzz-i386.base" \
             "$DEST_DIR/qemu-fuzz-i386-target-$target"
     fi
 done
-- 
2.28.0


Re: [PATCH-for-5.2] scripts/oss-fuzz: rename bin/qemu-fuzz-i386
Posted by Paolo Bonzini 3 years, 6 months ago
On 01/11/20 22:22, Alexander Bulekov wrote:
> OSS-Fuzz changed the way it scans for fuzzers in $DEST_DIR. The new code
> also scans subdirectories for fuzzers. This means that OSS-Fuzz is
> considering bin/qemu-fuzz-i386 as an independent fuzzer (it is not - it
> requires a --fuzz-target argument). This has led to coverage-build
> failures and false crash reports. To work around this, we take advantage
> of OSS-Fuzz' filename extension check - OSS-Fuzz will not run anything
> that has an extension that is not ".exe":
> https://github.com/google/oss-fuzz/blob/master/infra/utils.py#L115
> 
> Reported-by: OSS-Fuzz (Issue 26725)
> Reported-by: OSS-Fuzz (Issue 26679)
> Signed-off-by: Alexander Bulekov <alxndr@bu.edu>
> ---
> 
> Also, for context:
> https://github.com/google/oss-fuzz/issues/4575
> 
>  scripts/oss-fuzz/build.sh | 4 ++--
>  1 file changed, 2 insertions(+), 2 deletions(-)
> 
> diff --git a/scripts/oss-fuzz/build.sh b/scripts/oss-fuzz/build.sh
> index fcae4a0c26..3b1c82b63d 100755
> --- a/scripts/oss-fuzz/build.sh
> +++ b/scripts/oss-fuzz/build.sh
> @@ -91,7 +91,7 @@ make "-j$(nproc)" qemu-fuzz-i386 V=1
>  # Copy over the datadir
>  cp  -r ../pc-bios/ "$DEST_DIR/pc-bios"
>  
> -cp "./qemu-fuzz-i386" "$DEST_DIR/bin/"
> +cp "./qemu-fuzz-i386" "$DEST_DIR/bin/qemu-fuzz-i386.base"
>  
>  # Run the fuzzer with no arguments, to print the help-string and get the list
>  # of available fuzz-targets. Copy over the qemu-fuzz-i386, naming it according
> @@ -104,7 +104,7 @@ do
>      # that are thin wrappers around this target that set the required
>      # environment variables according to predefined configs.
>      if [ "$target" != "generic-fuzz" ]; then
> -        ln  "$DEST_DIR/bin/qemu-fuzz-i386" \
> +        ln  "$DEST_DIR/bin/qemu-fuzz-i386.base" \
>              "$DEST_DIR/qemu-fuzz-i386-target-$target"
>      fi
>  done
> 

Queued, thanks.

Paolo