summaryrefslogtreecommitdiffstats
path: root/printf.c
diff options
context:
space:
mode:
Diffstat (limited to 'printf.c')
-rw-r--r--printf.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/printf.c b/printf.c
index b9149f3..6eb59dd 100644
--- a/printf.c
+++ b/printf.c
@@ -310,7 +310,10 @@ static int bfs_printf_l(FILE *file, const struct bfs_printf *directive, const st
return 0;
}
- char *target = xreadlinkat(ftwbuf->at_fd, ftwbuf->at_path, 0);
+ const struct bfs_stat *statbuf = bftw_cached_stat(ftwbuf, BFS_STAT_NOFOLLOW);
+ size_t len = statbuf ? statbuf->size : 0;
+
+ char *target = xreadlinkat(ftwbuf->at_fd, ftwbuf->at_path, len);
if (!target) {
return -1;
}