summaryrefslogtreecommitdiff
path: root/sys-cluster/charliecloud/files/charliecloud-0.31-realpath_return.patch
blob: 7b320fa9dbab9664199153b07501bd1dfd95d578 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
From e6d25474fcd326ae657c08d7b49606aeabc98b51 Mon Sep 17 00:00:00 2001
From: Oliver Freyermuth <o.freyermuth@googlemail.com>
Date: Sat, 28 Jan 2023 21:25:09 +0100
Subject: [PATCH] ch-misc: Do not check errno in realpath_ unless realpath
 returns NULL
Bug: https://github.com/hpc/charliecloud/pull/1550

glibc's realpath may set errno also on success, as POSIX specifies
errno should only be checked after realpath if the return value is not NULL.

See for example:
 https://bugzilla.redhat.com/show_bug.cgi?id=1916968
---
 bin/ch_misc.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/bin/ch_misc.c b/bin/ch_misc.c
index 04ac52a..93a3339 100644
--- a/bin/ch_misc.c
+++ b/bin/ch_misc.c
@@ -589,7 +589,7 @@ char *realpath_(const char *path, bool fail_ok)
    errno = 0;
    pathc = realpath(path, NULL);
 
-   if (errno != 0) {
+   if (pathc == NULL && errno != 0) {
       if (fail_ok) {
          T_ (pathc = strdup(path));
       } else {
-- 
2.39.1