uid_t ruid, euid, suid;
if (getresuid(&ruid, &euid, &suid) == -1) {
printf("getresuid error: %m\n");
- return false;
+ goto end_free;
}
if (seteuid(suid) == -1) {
printf("setuid error: %m\n");
- return false;
+ goto end_free;
}
if (mktemp(fifo_path) == NULL) {
result = true;
end:
- free(fifo_path);
if (seteuid(euid) == -1) {
printf("setuid error: %m\n");
result = false;
}
+end_free:
+ free(fifo_path);
+
return result;
}