diff options
Diffstat (limited to 'src/main.c')
| -rw-r--r-- | src/main.c | 7 |
1 files changed, 5 insertions, 2 deletions
@@ -308,6 +308,7 @@ static void ftag_export(int argc, char **argv) free(line); /* step 3: invoke tar to build the archive */ + int error = 0; rc = fork(); if (rc == 0) { execlp("tar", @@ -327,16 +328,18 @@ static void ftag_export(int argc, char **argv) wait(&status); if (!(WIFEXITED(status) && WEXITSTATUS(status) == 0)) { fprintf(stderr, "ftag export: child process exited abnormally\n"); - exit(EXIT_FAILURE); + error = 1; } } else { perror("fork"); - exit(EXIT_FAILURE); + error = 1; } /* step 4: clean /tmp */ execlp("rm", "rm", "--recursive", "--force", tmp_dir, NULL); + if (error) + exit(EXIT_FAILURE); } /* Create ftag's database and directories. */ |
