summaryrefslogtreecommitdiff
path: root/src/shared/dissect-image.c
diff options
context:
space:
mode:
authorLennart Poettering <lennart@poettering.net>2018-03-26 19:22:16 +0200
committerLennart Poettering <lennart@poettering.net>2018-03-29 15:33:12 +0200
commit36952d19191054e62df3b122bf58f5fe27870d0f (patch)
tree7b3a08eb32ad65f13e95983d0f9bf44508009c1b /src/shared/dissect-image.c
parent21c692e9bf8c81437b9aa3a7d37c88d7fca0997d (diff)
downloadsystemd-36952d19191054e62df3b122bf58f5fe27870d0f.tar.gz
dissect: port code to chase_symlinks_and_open()
Diffstat (limited to 'src/shared/dissect-image.c')
-rw-r--r--src/shared/dissect-image.c12
1 files changed, 4 insertions, 8 deletions
diff --git a/src/shared/dissect-image.c b/src/shared/dissect-image.c
index 7af59422b2..11c792f4a8 100644
--- a/src/shared/dissect-image.c
+++ b/src/shared/dissect-image.c
@@ -1286,18 +1286,14 @@ int dissected_image_acquire_metadata(DissectedImage *m) {
fds[2*k] = safe_close(fds[2*k]);
NULSTR_FOREACH(p, paths[k]) {
- _cleanup_free_ char *q = NULL;
-
- r = chase_symlinks(p, t, CHASE_PREFIX_ROOT|CHASE_TRAIL_SLASH, &q);
- if (r < 0)
- continue;
-
- fd = open(q, O_RDONLY|O_CLOEXEC|O_NOCTTY);
+ fd = chase_symlinks_and_open(p, t, CHASE_PREFIX_ROOT, O_RDONLY|O_CLOEXEC|O_NOCTTY, NULL);
if (fd >= 0)
break;
}
- if (fd < 0)
+ if (fd < 0) {
+ log_debug_errno(fd, "Failed to read %s file of image, ignoring: %m", paths[k]);
continue;
+ }
r = copy_bytes(fd, fds[2*k+1], (uint64_t) -1, 0);
if (r < 0)