AFLplusplus / LibAFL

Advanced Fuzzing Library - Slot your Fuzzer together in Rust! Scales across cores and machines. For Windows, Android, MacOS, Linux, no_std, ...
Other
2.03k stars 319 forks source link

Libfuzzer_libpng README problem #813

Closed Shangyint closed 2 years ago

Shangyint commented 2 years ago

IMPORTANT

  1. You have verified that the issue to be present in the current main branch

Thank you for making LibAFL better!

Describe the bug When following the build instruction in README.md in libfuzzer_libpng, the following error occurred when compiling libpng with libafl:

libtool: link: gcc -dynamiclib  -o .libs/libpng16.16.dylib  .libs/png.o .libs/pngerror.o .libs/pngget.o .libs/pngmem.o .libs/pngpread.o .libs/pngread.o .libs/pngrio.o .libs/pngrtran.o .libs/pngrutil.o .libs/pngset.o .libs/pngtrans.o .libs/pngwio.o .libs/pngwrite.o .libs/pngwtran.o .libs/pngwutil.o arm/.libs/arm_init.o arm/.libs/filter_neon.o arm/.libs/filter_neon_intrinsics.o arm/.libs/palette_neon_intrinsics.o mips/.libs/mips_init.o mips/.libs/filter_msa_intrinsics.o powerpc/.libs/powerpc_init.o powerpc/.libs/filter_vsx_intrinsics.o   -lz  -g -O2   -install_name  /usr/local/lib/libpng16.16.dylib -compatibility_version 54 -current_version 54.0 -Wl,-single_module -Wl,-exported_symbols_list,.libs/libpng16-symbols.expsym
Undefined symbols for architecture arm64:
  "___sanitizer_cov_trace_pc_guard", referenced from:
      _png_set_sig_bytes in png.o
      _png_sig_cmp in png.o
      _png_zalloc in png.o
      _png_zfree in png.o
      _png_reset_crc in png.o
      _png_calculate_crc in png.o
      _png_user_version_check in png.o
      ...

However, when I run cargo make run, the problem solves itself. My assumption is that in the README file, it configures libpng with ./configure, while in Makefile.toml, the library is configured by ./configure --enable-shared=no --with-pic=yes --enable-hardware-optimizations=yes. It would be good if the developers can confirm the configuration in the makefile is correct and correct the corresponding part in the README file. Thanks!

To Reproduce Platform: MacOS Arch: ARM64 (M1 Pro)

Build the libfuzzer_libpng following instruction in the README file.

Expected behavior

Screen output/Screenshots

Additional context

tokatoka commented 2 years ago

sure, thank you