On Thursday, 2020-10-22 at 09:01:23 -04, Alexander Bulekov wrote: > On 201022 1032, Darren Kenny wrote: >> Hi Alex, >> >> On Wednesday, 2020-10-21 at 17:09:22 -04, Alexander Bulekov wrote: >> > generic-fuzz is not a standalone fuzzer - it requires some env variables >> > to be set. On oss-fuzz, we set these with some predefined >> > generic-fuzz-{...} targets, that are thin wrappers around generic-fuzz. >> > Remove generic-fuzz from the oss-fuzz build, so oss-fuzz does not treat >> > it as a standalone fuzzer. >> > >> > Signed-off-by: Alexander Bulekov <alx...@bu.edu> >> > --- >> > scripts/oss-fuzz/build.sh | 6 ++++++ >> > 1 file changed, 6 insertions(+) >> > >> > diff --git a/scripts/oss-fuzz/build.sh b/scripts/oss-fuzz/build.sh >> > index 0c3ca9e06f..37cd7f9e25 100755 >> > --- a/scripts/oss-fuzz/build.sh >> > +++ b/scripts/oss-fuzz/build.sh >> > @@ -97,5 +97,11 @@ do >> > > Hi Darren, > >> I'm presuming that the target that you're removing is being created by >> this line, maybe we should just specifically skip it here instead? > > Sounds good. > >> The comment below on the removal probably would still apply though. >> >> > cp qemu-fuzz-i386 "$DEST_DIR/qemu-fuzz-i386-target-$target" >> >> Also, did you look into using hard-links, or even sym-links - they would >> require less duplication of the binaries, which may be important, or may >> not, and quicker creation too, e.g. >> >> ln qemu-fuzz-i386 "$DEST_DIR/qemu-fuzz-i386-target-$target" > > This is what I tried, when I was putting together the patch-series, and > it raised an error when I was testing it in the oss-fuzz > docker-containers. I blamed it on Docker, originally, but I just took a > closer look, and the problem was that "qemu-fuzz-i386" isn't on the same > file-system as $DEST_DIR in the oss-fuzz Docker. If I copy > qemu-fuzz-i386 to $DEST_DIR/lib, and do > ln "$DEST_DIR/lib/qemu-fuzz-i386" \ > "$DEST_DIR/qemu-fuzz-i386-target-$target" > everything works :)
Fair enough then! Thanks, Darren. > Thanks > -Alex > >> >> It's something that has been done for years, for example if you do: >> >> ls -il /sbin/{e2fsck,fsck.ext*} >> >> you will see they share the same inode. Similarly for vi and ex, they >> use symlinks (hardlinks on some OSes, but seems not Linux): >> >> ls -il /bin/{vi,ex} >> >> The main point is that argv[0] will be the name of link itself, not the >> thing pointed to. >> >> Thanks, >> >> Darren. >> >> > done >> > >> > +# Remove the generic-fuzz target, as it requires some environment >> > variables to >> > +# be configured. We have some generic-fuzz-{pc-q35, floppy, ...} targets >> > that >> > +# are thin wrappers around this target that set the required environment >> > +# variables according to predefined configs. >> > +rm "$DEST_DIR/qemu-fuzz-i386-target-generic-fuzz" >> > + >> > echo "Done. The fuzzers are located in $DEST_DIR" >> > exit 0 >> > -- >> > 2.28.0