Do not leak fifo_path
[platform/core/system/dumpsys.git] / src / dumpsys / dumpsys.c
index 7d4a746..93d1cd1 100644 (file)
@@ -87,12 +87,12 @@ static bool make_fifo(int *write_fd, int *read_fd)
        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) {
@@ -142,11 +142,13 @@ static bool make_fifo(int *write_fd, int *read_fd)
 
        result = true;
 end:
-       free(fifo_path);
        if (seteuid(euid) == -1) {
                printf("setuid error: %m\n");
                result = false;
        }
+end_free:
+       free(fifo_path);
+
        return result;
 }