aboutsummaryrefslogtreecommitdiff
path: root/sysdeps/generic/segfault.c
diff options
context:
space:
mode:
Diffstat (limited to 'sysdeps/generic/segfault.c')
-rw-r--r--sysdeps/generic/segfault.c9
1 files changed, 7 insertions, 2 deletions
diff --git a/sysdeps/generic/segfault.c b/sysdeps/generic/segfault.c
index 8a8ee1d1a2..7e364f025f 100644
--- a/sysdeps/generic/segfault.c
+++ b/sysdeps/generic/segfault.c
@@ -237,6 +237,11 @@ install_handler (void)
/* Preserve the output file name if there is any given. */
name = getenv ("SEGFAULT_OUTPUT_NAME");
- if (name != NULL && name[0] != '\0' && access (name, R_OK | W_OK) == 0)
- fname = __strdup (name);
+ if (name != NULL && name[0] != '\0')
+ {
+ int ret = access (name, R_OK | W_OK);
+
+ if (ret == 0 || (ret == -1 && errno == ENOENT))
+ fname = __strdup (name);
+ }
}