[PATCH 2/2] dwarves: cus__load_files: set errno if load fails

kkourt
2022-03-16T13:24:04Z

From: Kornilios Kourtis <kornilios@isovalent.com>

This patch improves the error seen by the user by setting errno in
cus__load_files(). Otherwise, we get a "No such file or directory" error
which might be confusing.

Before the patch, using a bogus file:
$ ./pahole -J ./vmlinux-5.3.18-24.102-default.debug
pahole: ./vmlinux-5.3.18-24.102-default.debug: No such file or directory
$ ls ./vmlinux-5.3.18-24.102-default.debug
/home/kkourt/src/hubble-fgs/vmlinux-5.3.18-24.102-default.debug

After the patch:
$ ./pahole -J ./vmlinux-5.3.18-24.102-default.debug
pahole: ./vmlinux-5.3.18-24.102-default.debug: Unknown error -22

Which is not very helpful, but less confusing.

Signed-off-by: Kornilios Kourtis <kornilios@isovalent.com>
---
dwarves.c | 5 ++++-
1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/dwarves.c b/dwarves.c
index 89b58ef..5d0b420 100644
--- a/dwarves.c
+++ b/dwarves.c
@@ -2399,8 +2399,11 @@ int cus__load_files(struct cus *cus, struct conf_load *conf,
int i = 0;

while (filenames[i] != NULL) {
- if (cus__load_file(cus, conf, filenames[i]))
+ int err = cus__load_file(cus, conf, filenames[i]);
+ if (err) {
+ errno = err;
return -++i;
+ }
++i;
}

--
2.25.1