Remove exec when afl mode is enabled

This commit is contained in:
savalet
2025-04-30 13:38:24 +02:00
parent 6b54f84ede
commit ce929090b0
2 changed files with 8 additions and 0 deletions

View File

@@ -146,12 +146,16 @@ int launch_bin(char *full_bin_path, char **args, ef_t *ef)
if (pid == 0) {
set_fd(ef);
#if !defined(AFL_MODE)
if (execve(full_bin_path, args, ef->env->env) < 0) {
status = command_error(full_bin_path, args, errno);
free_env(ef->env);
free((void *)args);
exit((free(ef->buffer), status));
}
#else
exit(0);
#endif
}
if (!(ef->flags & F_PIPE) || ef->p_i == ef->p_sz - 1)
waitpid(pid, &status, 0);

View File

@@ -28,11 +28,13 @@ bool handle_out_redirect(ef_t *ef, ast_t *node, size_t i, size_t sz)
ef->skip_i = ef->skip_i ?: i;
ef->skip_sz += 2;
node->vector.tokens[i + 1].str[node->vector.tokens[i + 1].sz] = '\0';
#if !defined(AFL_MODE)
ef->rout_fd = open(node->vector.tokens[i + 1].str, O_CREAT | O_WRONLY |
(node->vector.tokens[i].type == T_APPEND ? O_APPEND : O_TRUNC), 0644);
if (ef->rout_fd < 0)
return (puterror(node->vector.tokens[i + 1].str), false);
ef->out_fd = ef->rout_fd;
#endif
return true;
}
@@ -46,10 +48,12 @@ bool handle_in_redirect(ef_t *ef, ast_t *node, size_t i, size_t sz)
ef->skip_i = ef->skip_i ?: i;
ef->skip_sz += 2;
node->vector.tokens[i + 1].str[node->vector.tokens[i + 1].sz] = '\0';
#if !defined(AFL_MODE)
ef->rin_fd = open(node->vector.tokens[i + 1].str, O_RDONLY);
if (ef->rin_fd < 0)
return (puterror(node->vector.tokens[i + 1].str), false);
ef->in_fd = ef->rin_fd;
#endif
return true;
}