undefined4 safefile(char *param_1)
{
__uid_t _Var1;
__uid_t _Var2;
int iVar3;
int *piVar4;
char *pcVar5;
stat sStack_a8;
_Var1 = getuid();
_Var2 = geteuid();
if (_Var1 == _Var2) {
iVar3 = lstat(param_1,&sStack_a8) //possible issue identified - semgrep
if (iVar3 == 0) {
_Var1 = getuid();
if (_Var1 == sStack_a8.st_gid) {
if ((sStack_a8.st_nlink & 0xf000) != 0x8000) {
dprintf(5,"safefile","%s is an invalid file type 0x%o",param_1,sStack_a8.st_nlink & 0xf000
);
return 0xffffffff;
}
return 0;
}
pcVar5 = "%s has invalid owner uid";
}
else {
piVar4 = __errno_location();
param_1 = strerror(*piVar4);
pcVar5 = "lstat failed: %s";
}
dprintf(5,"safefile",pcVar5,param_1);
}
else {
dprintf(5,"safefile","setuid\'ed execution not allowed");
}
return 0xffffffff;
}