mirror of
https://github.com/AFLplusplus/AFLplusplus.git
synced 2025-06-19 13:03:44 +00:00
fix double free on exit for -c 0 on src cmplog
This commit is contained in:
33
src/afl-cc.c
33
src/afl-cc.c
@ -424,21 +424,21 @@ static void edit_params(u32 argc, char **argv, char **envp) {
|
|||||||
|
|
||||||
char *fplugin_arg;
|
char *fplugin_arg;
|
||||||
|
|
||||||
if (cmplog_mode)
|
if (cmplog_mode) {
|
||||||
{
|
|
||||||
fplugin_arg = alloc_printf("-fplugin=%s/afl-gcc-cmplog-pass.so",
|
fplugin_arg =
|
||||||
obj_path);
|
alloc_printf("-fplugin=%s/afl-gcc-cmplog-pass.so", obj_path);
|
||||||
cc_params[cc_par_cnt++] = fplugin_arg;
|
cc_params[cc_par_cnt++] = fplugin_arg;
|
||||||
fplugin_arg = alloc_printf("-fplugin=%s/afl-gcc-cmptrs-pass.so",
|
fplugin_arg =
|
||||||
obj_path);
|
alloc_printf("-fplugin=%s/afl-gcc-cmptrs-pass.so", obj_path);
|
||||||
cc_params[cc_par_cnt++] = fplugin_arg;
|
cc_params[cc_par_cnt++] = fplugin_arg;
|
||||||
}
|
|
||||||
else
|
} else {
|
||||||
{
|
|
||||||
fplugin_arg = alloc_printf("-fplugin=%s/afl-gcc-pass.so",
|
fplugin_arg = alloc_printf("-fplugin=%s/afl-gcc-pass.so", obj_path);
|
||||||
obj_path);
|
cc_params[cc_par_cnt++] = fplugin_arg;
|
||||||
cc_params[cc_par_cnt++] = fplugin_arg;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
cc_params[cc_par_cnt++] = "-fno-if-conversion";
|
cc_params[cc_par_cnt++] = "-fno-if-conversion";
|
||||||
cc_params[cc_par_cnt++] = "-fno-if-conversion2";
|
cc_params[cc_par_cnt++] = "-fno-if-conversion2";
|
||||||
@ -2166,7 +2166,8 @@ int main(int argc, char **argv, char **envp) {
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
cmplog_mode = getenv("AFL_CMPLOG") || getenv("AFL_LLVM_CMPLOG") || getenv("AFL_GCC_CMPLOG");
|
cmplog_mode = getenv("AFL_CMPLOG") || getenv("AFL_LLVM_CMPLOG") ||
|
||||||
|
getenv("AFL_GCC_CMPLOG");
|
||||||
|
|
||||||
#if !defined(__ANDROID__) && !defined(ANDROID)
|
#if !defined(__ANDROID__) && !defined(ANDROID)
|
||||||
ptr = find_object("afl-compiler-rt.o", argv[0]);
|
ptr = find_object("afl-compiler-rt.o", argv[0]);
|
||||||
|
@ -1469,7 +1469,7 @@ int main(int argc, char **argv_orig, char **envp) {
|
|||||||
if (afl->shm.cmplog_mode &&
|
if (afl->shm.cmplog_mode &&
|
||||||
(!strcmp("-", afl->cmplog_binary) || !strcmp("0", afl->cmplog_binary))) {
|
(!strcmp("-", afl->cmplog_binary) || !strcmp("0", afl->cmplog_binary))) {
|
||||||
|
|
||||||
afl->cmplog_binary = argv[optind];
|
afl->cmplog_binary = strdup(argv[optind]);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user