Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

gcc: error: unrecognized command line option ‘-ferror-limit=1’ #42

Closed
MoJl4yH opened this issue Dec 13, 2022 · 1 comment
Closed

Comments

@MoJl4yH
Copy link

MoJl4yH commented Dec 13, 2022

Ошибка

При генерации фаззинг-оберток для AFL++ автоматически подставляется флаг -ferror-limit=1, компилятор afl-clang-fast его не поддерживает и из-за этого фаззинг-обертки не генерируются.

Команда для генерации:

/home/negoro/Fuzzing/Futag/futag-llvm/AFLplusplus/usr/local/bin/afl-clang-fast -fsanitize=address -g -O0 -ferror-limit=1 -I/home/negoro/Garbage/comp_fuzzing/linux-pam-1.5.2/.futag-build/libpam/ -I/home/negoro/Garbage/comp_fuzzing/linux-pam-1.5.2/libpam/ -I/home/negoro/Garbage/comp_fuzzing/linux-pam-1.5.2/.futag-build/libpam/../ -I/home/negoro/Garbage/comp_fuzzing/linux-pam-1.5.2/libpam/include/ /home/negoro/Garbage/comp_fuzzing/linux-pam-1.5.2/.futag-fuzz-drivers/_pam_strdup/_pam_strdup1/_pam_strdup1.c -o /home/negoro/Garbage/comp_fuzzing/linux-pam-1.5.2/.futag-fuzz-drivers/_pam_strdup/_pam_strdup1/_pam_strdup1.out -Wl,--start-group /home/negoro/Garbage/comp_fuzzing/linux-pam-1.5.2/.futag-install/lib/libpam_misc.a /home/negoro/Garbage/comp_fuzzing/linux-pam-1.5.2/.futag-install/lib/libpam.a /home/negoro/Garbage/comp_fuzzing/linux-pam-1.5.2/.futag-install/lib/libpamc.a /home/negoro/Garbage/comp_fuzzing/linux-pam-1.5.2/.futag-install/lib/security/pam_warn.a /home/negoro/Garbage/comp_fuzzing/linux-pam-1.5.2/.futag-install/lib/security/pam_namespace.a /home/negoro/Garbage/comp_fuzzing/linux-pam-1.5.2/.futag-install/lib/security/pam_deny.a /home/negoro/Garbage/comp_fuzzing/linux-pam-1.5.2/.futag-install/lib/security/pam_listfile.a /home/negoro/Garbage/comp_fuzzing/linux-pam-1.5.2/.futag-install/lib/security/pam_limits.a /home/negoro/Garbage/comp_fuzzing/linux-pam-1.5.2/.futag-install/lib/security/pam_echo.a /home/negoro/Garbage/comp_fuzzing/linux-pam-1.5.2/.futag-install/lib/security/pam_group.a /home/negoro/Garbage/comp_fuzzing/linux-pam-1.5.2/.futag-install/lib/security/pam_exec.a /home/negoro/Garbage/comp_fuzzing/linux-pam-1.5.2/.futag-install/lib/security/pam_access.a /home/negoro/Garbage/comp_fuzzing/linux-pam-1.5.2/.futag-install/lib/security/pam_permit.a /home/negoro/Garbage/comp_fuzzing/linux-pam-1.5.2/.futag-install/lib/security/pam_xauth.a /home/negoro/Garbage/comp_fuzzing/linux-pam-1.5.2/.futag-install/lib/security/pam_setquota.a /home/negoro/Garbage/comp_fuzzing/linux-pam-1.5.2/.futag-install/lib/security/pam_time.a /home/negoro/Garbage/comp_fuzzing/linux-pam-1.5.2/.futag-install/lib/security/pam_umask.a /home/negoro/Garbage/comp_fuzzing/linux-pam-1.5.2/.futag-install/lib/security/pam_mkhomedir.a /home/negoro/Garbage/comp_fuzzing/linux-pam-1.5.2/.futag-install/lib/security/pam_localuser.a /home/negoro/Garbage/comp_fuzzing/linux-pam-1.5.2/.futag-install/lib/security/pam_faildelay.a /home/negoro/Garbage/comp_fuzzing/linux-pam-1.5.2/.futag-install/lib/security/pam_keyinit.a /home/negoro/Garbage/comp_fuzzing/linux-pam-1.5.2/.futag-install/lib/security/pam_stress.a /home/negoro/Garbage/comp_fuzzing/linux-pam-1.5.2/.futag-install/lib/security/pam_filter.a /home/negoro/Garbage/comp_fuzzing/linux-pam-1.5.2/.futag-install/lib/security/pam_sepermit.a /home/negoro/Garbage/comp_fuzzing/linux-pam-1.5.2/.futag-install/lib/security/pam_motd.a /home/negoro/Garbage/comp_fuzzing/linux-pam-1.5.2/.futag-install/lib/security/pam_faillock.a /home/negoro/Garbage/comp_fuzzing/linux-pam-1.5.2/.futag-install/lib/security/pam_env.a /home/negoro/Garbage/comp_fuzzing/linux-pam-1.5.2/.futag-install/lib/security/pam_unix.a /home/negoro/Garbage/comp_fuzzing/linux-pam-1.5.2/.futag-install/lib/security/pam_succeed_if.a /home/negoro/Garbage/comp_fuzzing/linux-pam-1.5.2/.futag-install/lib/security/pam_mail.a /home/negoro/Garbage/comp_fuzzing/linux-pam-1.5.2/.futag-install/lib/security/pam_securetty.a /home/negoro/Garbage/comp_fuzzing/linux-pam-1.5.2/.futag-install/lib/security/pam_usertype.a /home/negoro/Garbage/comp_fuzzing/linux-pam-1.5.2/.futag-install/lib/security/pam_shells.a /home/negoro/Garbage/comp_fuzzing/linux-pam-1.5.2/.futag-install/lib/security/pam_rhosts.a /home/negoro/Garbage/comp_fuzzing/linux-pam-1.5.2/.futag-install/lib/security/pam_timestamp.a /home/negoro/Garbage/comp_fuzzing/linux-pam-1.5.2/.futag-install/lib/security/pam_ftp.a /home/negoro/Garbage/comp_fuzzing/linux-pam-1.5.2/.futag-install/lib/security/pam_rootok.a /home/negoro/Garbage/comp_fuzzing/linux-pam-1.5.2/.futag-install/lib/security/pam_nologin.a /home/negoro/Garbage/comp_fuzzing/linux-pam-1.5.2/.futag-install/lib/security/pam_lastlog.a /home/negoro/Garbage/comp_fuzzing/linux-pam-1.5.2/.futag-install/lib/security/pam_debug.a /home/negoro/Garbage/comp_fuzzing/linux-pam-1.5.2/.futag-install/lib/security/pam_issue.a /home/negoro/Garbage/comp_fuzzing/linux-pam-1.5.2/.futag-install/lib/security/pam_selinux.a /home/negoro/Garbage/comp_fuzzing/linux-pam-1.5.2/.futag-install/lib/security/pam_pwhistory.a /home/negoro/Garbage/comp_fuzzing/linux-pam-1.5.2/.futag-install/lib/security/pam_wheel.a /home/negoro/Garbage/comp_fuzzing/linux-pam-1.5.2/.futag-install/lib/security/pam_loginuid.a /home/negoro/Garbage/comp_fuzzing/linux-pam-1.5.2/.futag-build/libpam_misc/.libs/libpam_misc.a /home/negoro/Garbage/comp_fuzzing/linux-pam-1.5.2/.futag-build/libpamc/.libs/libpamc.a /home/negoro/Garbage/comp_fuzzing/linux-pam-1.5.2/.futag-build/libpam/.libs/libpam.a /home/negoro/Garbage/comp_fuzzing/linux-pam-1.5.2/.futag-build/modules/pam_ftp/.libs/pam_ftp.a /home/negoro/Garbage/comp_fuzzing/linux-pam-1.5.2/.futag-build/modules/pam_sepermit/.libs/pam_sepermit.a /home/negoro/Garbage/comp_fuzzing/linux-pam-1.5.2/.futag-build/modules/pam_loginuid/.libs/pam_loginuid.a /home/negoro/Garbage/comp_fuzzing/linux-pam-1.5.2/.futag-build/modules/pam_listfile/.libs/pam_listfile.a /home/negoro/Garbage/comp_fuzzing/linux-pam-1.5.2/.futag-build/modules/pam_pwhistory/.libs/pam_pwhistory.a /home/negoro/Garbage/comp_fuzzing/linux-pam-1.5.2/.futag-build/modules/pam_exec/.libs/pam_exec.a /home/negoro/Garbage/comp_fuzzing/linux-pam-1.5.2/.futag-build/modules/pam_securetty/.libs/pam_securetty.a /home/negoro/Garbage/comp_fuzzing/linux-pam-1.5.2/.futag-build/modules/pam_issue/.libs/pam_issue.a /home/negoro/Garbage/comp_fuzzing/linux-pam-1.5.2/.futag-build/modules/pam_succeed_if/.libs/pam_succeed_if.a /home/negoro/Garbage/comp_fuzzing/linux-pam-1.5.2/.futag-build/modules/pam_usertype/.libs/pam_usertype.a /home/negoro/Garbage/comp_fuzzing/linux-pam-1.5.2/.futag-build/modules/pam_localuser/.libs/pam_localuser.a /home/negoro/Garbage/comp_fuzzing/linux-pam-1.5.2/.futag-build/modules/pam_keyinit/.libs/pam_keyinit.a /home/negoro/Garbage/comp_fuzzing/linux-pam-1.5.2/.futag-build/modules/pam_nologin/.libs/pam_nologin.a /home/negoro/Garbage/comp_fuzzing/linux-pam-1.5.2/.futag-build/modules/pam_lastlog/.libs/pam_lastlog.a /home/negoro/Garbage/comp_fuzzing/linux-pam-1.5.2/.futag-build/modules/pam_limits/.libs/pam_limits.a /home/negoro/Garbage/comp_fuzzing/linux-pam-1.5.2/.futag-build/modules/pam_warn/.libs/pam_warn.a /home/negoro/Garbage/comp_fuzzing/linux-pam-1.5.2/.futag-build/modules/pam_env/.libs/pam_env.a /home/negoro/Garbage/comp_fuzzing/linux-pam-1.5.2/.futag-build/modules/pam_faildelay/.libs/pam_faildelay.a /home/negoro/Garbage/comp_fuzzing/linux-pam-1.5.2/.futag-build/modules/pam_filter/.libs/pam_filter.a /home/negoro/Garbage/comp_fuzzing/linux-pam-1.5.2/.futag-build/modules/pam_permit/.libs/pam_permit.a /home/negoro/Garbage/comp_fuzzing/linux-pam-1.5.2/.futag-build/modules/pam_setquota/.libs/pam_setquota.a /home/negoro/Garbage/comp_fuzzing/linux-pam-1.5.2/.futag-build/modules/pam_namespace/.libs/pam_namespace.a /home/negoro/Garbage/comp_fuzzing/linux-pam-1.5.2/.futag-build/modules/pam_time/.libs/pam_time.a /home/negoro/Garbage/comp_fuzzing/linux-pam-1.5.2/.futag-build/modules/pam_selinux/.libs/pam_selinux.a /home/negoro/Garbage/comp_fuzzing/linux-pam-1.5.2/.futag-build/modules/pam_debug/.libs/pam_debug.a /home/negoro/Garbage/comp_fuzzing/linux-pam-1.5.2/.futag-build/modules/pam_rhosts/.libs/pam_rhosts.a /home/negoro/Garbage/comp_fuzzing/linux-pam-1.5.2/.futag-build/modules/pam_rootok/.libs/pam_rootok.a /home/negoro/Garbage/comp_fuzzing/linux-pam-1.5.2/.futag-build/modules/pam_mail/.libs/pam_mail.a /home/negoro/Garbage/comp_fuzzing/linux-pam-1.5.2/.futag-build/modules/pam_mkhomedir/.libs/pam_mkhomedir.a /home/negoro/Garbage/comp_fuzzing/linux-pam-1.5.2/.futag-build/modules/pam_timestamp/.libs/pam_timestamp.a /home/negoro/Garbage/comp_fuzzing/linux-pam-1.5.2/.futag-build/modules/pam_xauth/.libs/pam_xauth.a /home/negoro/Garbage/comp_fuzzing/linux-pam-1.5.2/.futag-build/modules/pam_group/.libs/pam_group.a /home/negoro/Garbage/comp_fuzzing/linux-pam-1.5.2/.futag-build/modules/pam_shells/.libs/pam_shells.a /home/negoro/Garbage/comp_fuzzing/linux-pam-1.5.2/.futag-build/modules/pam_deny/.libs/pam_deny.a /home/negoro/Garbage/comp_fuzzing/linux-pam-1.5.2/.futag-build/modules/pam_faillock/.libs/pam_faillock.a /home/negoro/Garbage/comp_fuzzing/linux-pam-1.5.2/.futag-build/modules/pam_echo/.libs/pam_echo.a /home/negoro/Garbage/comp_fuzzing/linux-pam-1.5.2/.futag-build/modules/pam_unix/.libs/pam_unix.a /home/negoro/Garbage/comp_fuzzing/linux-pam-1.5.2/.futag-build/modules/pam_umask/.libs/pam_umask.a /home/negoro/Garbage/comp_fuzzing/linux-pam-1.5.2/.futag-build/modules/pam_stress/.libs/pam_stress.a /home/negoro/Garbage/comp_fuzzing/linux-pam-1.5.2/.futag-build/modules/pam_wheel/.libs/pam_wheel.a /home/negoro/Garbage/comp_fuzzing/linux-pam-1.5.2/.futag-build/modules/pam_access/.libs/pam_access.a /home/negoro/Garbage/comp_fuzzing/linux-pam-1.5.2/.futag-build/modules/pam_motd/.libs/pam_motd.a -Wl,--end-group

Лог ошибки

-- [Futag] ERROR on target  _pam_strdup1 :
 gcc: error: : No such file or directory
gcc: error: : No such file or directory
gcc: error: unrecognized command line option ‘-ferror-limit=1’

Сопутствующая информация

OS:

Distributor ID: Ubuntu
Description: Ubuntu 20.04.5 LTS
Release: 20.04
Codename: focal
uname -a: Linux negoro 5.4.0-132-generic #148-Ubuntu SMP Mon Oct 17 16:02:06 UTC 2022 x86_64 x86_64 x86_64 GNU/Linux.

Project:

linux-pam-1.5.2.

Build script:

from futag.preprocessor import *

FUTAG_PATH = "/home/negoro/Fuzzing/Futag/futag-llvm/"
lib_path = "/home/negoro/Garbage/comp_fuzzing/linux-pam-1.5.2"

build_test = Builder(
    FUTAG_PATH,
    lib_path,
    clean=True,
    processes=1,
    build_ex_params="--disable-doc --disable-shared", 
    flags="-fPIE -fsanitize=address -g -O0 -fprofile-instr-generate -fcoverage-mapping" #flags for compiling
)
build_test.auto_build()
build_test.analyze()

Generation script:

from futag.generator import *

FUTAG_PATH = "/home/negoro/Fuzzing/Futag/futag-llvm/"
lib_path = "/home/negoro/Garbage/comp_fuzzing/linux-pam-1.5.2"
lib_json_file="/home/negoro/Garbage/comp_fuzzing/linux-pam-1.5.2/.futag-analysis/futag-analysis-result.json"
flags_afl="-fsanitize=address -g -O0"
flags_libfuzz="-fsanitize=address,fuzzer -g -O0"

generator = Generator(
    FUTAG_PATH, # путь к директории "futag-llvm"
    lib_path, #path to source
    target_type=AFLPLUSPLUS, #select fuzzers
    json_file=lib_json_file #path to json file
)

generator.gen_targets(
  anonymous=False
)
# Compile fuzz drivers
generator.compile_targets(
  4, # количество задач при сборке
  flags=flags_afl
)

Version LLVM:

clang version 14.0.6 (https://github.com/ispras/Futag 4373a71)
Собирали все из репозитория самостоятельно 13.12.2022.
git clone репозитория выполнялся 12.12.2022.
Сборка из исходников произошла успешно.

Version python package:

futag 1.2.1

Также вопрос, будет ли добавлен afl-clang-lto?

@thientc
Copy link
Collaborator

thientc commented Dec 20, 2022

Попробуйте пожалуйста, новый коммит, если что можете открыть заново данную проблему.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants