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