aboutsummaryrefslogtreecommitdiff
path: root/libctf/ctf-archive.c
diff options
context:
space:
mode:
Diffstat (limited to 'libctf/ctf-archive.c')
-rw-r--r--libctf/ctf-archive.c19
1 files changed, 6 insertions, 13 deletions
diff --git a/libctf/ctf-archive.c b/libctf/ctf-archive.c
index ac13d6d..d857c01 100644
--- a/libctf/ctf-archive.c
+++ b/libctf/ctf-archive.c
@@ -228,23 +228,16 @@ ctf_arc_write (const char *file, ctf_file_t ** ctf_files, size_t ctf_file_cnt,
err = ctf_arc_write_fd (fd, ctf_files, ctf_file_cnt, names, threshold);
if (err)
- goto err;
+ goto err_close;
if ((err = close (fd)) < 0)
- {
- ctf_dprintf ("ctf_arc_write(): Cannot close after writing to archive: "
- "%s\n", strerror (errno));
- goto err_close;
- }
-
- err:
- close (fd);
- if (err < 0)
- unlink (file);
-
- return err;
+ ctf_dprintf ("ctf_arc_write(): Cannot close after writing to archive: "
+ "%s\n", strerror (errno));
+ goto err;
err_close:
+ (void) close (fd);
+ err:
if (err < 0)
unlink (file);