int execute_helper_with_env(char **param_1)
{
__pid_t __pid;
__pid_t _Var1;
int *piVar2;
int local_260;
char *local_25c;
undefined4 local_258;
sigset_t sStack_254;
_union_1051 local_1d4;
undefined4 local_1d0;
sigset_t sStack_1cc;
sigaction sStack_144;
sigaction sStack_b4;
local_1d0 = 1;
local_25c = &DAT_0043a648;
local_258 = 0;
sigemptyset(&sStack_1cc);
local_1d4.sa_handler = (__sighandler_t)0x0;
sigemptyset((sigset_t *)(sStack_144.sa_mask.__val + 1));
sigemptyset((sigset_t *)(sStack_b4.sa_mask.__val + 1));
sigaction(2,(sigaction *)&local_1d4,&sStack_144);
sigaction(3,(sigaction *)&local_1d4,&sStack_b4);
sigaddset(&sStack_1cc,0x12);
sigprocmask(1,&sStack_1cc,&sStack_254);
__pid = fork() //possible issue identified - semgrep
if (__pid == 0) {
sigaction(2,&sStack_144,(sigaction *)0x0);
sigaction(3,&sStack_b4,(sigaction *)0x0);
sigprocmask(3,&sStack_254,(sigset_t *)0x0);
execve(local_25c,&local_25c,param_1) //possible issue identified - semgrep
/* WARNING: Subroutine does not return */
_exit(0x7f);
}
if (__pid == -1) {
local_260 = -1;
}
else {
do {
_Var1 = waitpid(__pid,&local_260,0);
if (_Var1 != -1) goto LAB_00402b78;
piVar2 = __errno_location();
} while (*piVar2 == 4);
local_260 = -1;
}
LAB_00402b78:
sigaction(2,&sStack_144,(sigaction *)0x0);
sigaction(3,&sStack_b4,(sigaction *)0x0);
sigprocmask(3,&sStack_254,(sigset_t *)0x0);
return local_260;
}