From 70fed324d65d1a435cefaaf1e3214cb5f606699d Mon Sep 17 00:00:00 2001 From: Simon McVittie <smcv@collabora.com> Date: Wed, 12 May 2021 18:50:20 +0100 Subject: [PATCH] resolve-in-sysroot: Correct misleading error messages At this point, current_path is everything up to but not including fd. For example, if we are traversing "x/y/z/w" with current_path = "x/y", then the fds array contains { x, y } and fd is the result of opening z. We're looking at the result of calling fstatat() on z, so we need to see "x/y/z" in the error messages, for example if z is a regular file (therefore "x/y/z/w" cannot possibly exist). Signed-off-by: Simon McVittie <smcv@collabora.com> --- steam-runtime-tools/resolve-in-sysroot.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/steam-runtime-tools/resolve-in-sysroot.c b/steam-runtime-tools/resolve-in-sysroot.c index c4dbb581d..f15407a1c 100644 --- a/steam-runtime-tools/resolve-in-sysroot.c +++ b/steam-runtime-tools/resolve-in-sysroot.c @@ -281,17 +281,17 @@ _srt_resolve_in_sysroot (int sysroot, if (!glnx_fstatat (fd, "", &stat_buf, AT_EMPTY_PATH, error)) { g_prefix_error (error, - "Unable to determine whether \"%s\" " + "Unable to determine whether \"%s/%s\" " "is a directory", - current_path->str); + current_path->str, next); return -1; } if (!S_ISDIR (stat_buf.st_mode)) { g_set_error (error, G_IO_ERROR, G_IO_ERROR_NOT_DIRECTORY, - "\"%s\" is not a directory", - current_path->str); + "\"%s/%s\" is not a directory", + current_path->str, next); } } -- GitLab