From 8754729cb1a01bf4030899aaaa89a0bb70db10ce Mon Sep 17 00:00:00 2001 From: David Oberhollenzer Date: Sun, 3 Feb 2019 16:18:34 +0100 Subject: [PATCH] Improve unpack error handling, ignore mkdir failure on EEXIST Signed-off-by: David Oberhollenzer --- main/pkg_unpack.c | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/main/pkg_unpack.c b/main/pkg_unpack.c index d5b44cd..0864f2a 100644 --- a/main/pkg_unpack.c +++ b/main/pkg_unpack.c @@ -16,7 +16,10 @@ static int create_hierarchy(int dirfd, image_entry_t *list) for (ent = list; ent != NULL; ent = ent->next) { if (S_ISDIR(ent->mode)) { if (mkdirat(dirfd, ent->name, 0755)) { - perror(ent->name); + if (errno == EEXIST) + continue; + fprintf(stderr, "mkdir %s: %s\n", ent->name, + strerror(errno)); return -1; } } @@ -26,7 +29,9 @@ static int create_hierarchy(int dirfd, image_entry_t *list) if (S_ISLNK(ent->mode)) { if (symlinkat(ent->data.symlink.target, dirfd, ent->name)) { - perror(ent->name); + fprintf(stderr, "symlink %s to %s: %s\n", + ent->name, ent->data.symlink.target, + strerror(errno)); return -1; } }