From d68a7ac6dd5a50a6c3ad60188fef435194e0e6ba Mon Sep 17 00:00:00 2001 From: Ian Lance Taylor Date: Wed, 13 May 2020 10:18:45 -0700 Subject: [PATCH] libbacktrace: treat EACCESS like ENOENT For https://gcc.gnu.org/PR95061 --- posix.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/posix.c b/posix.c index 356e72b..a2c88dd 100644 --- a/posix.c +++ b/posix.c @@ -67,7 +67,11 @@ backtrace_open (const char *filename, backtrace_error_callback error_callback, descriptor = open (filename, (int) (O_RDONLY | O_BINARY | O_CLOEXEC)); if (descriptor < 0) { - if (does_not_exist != NULL && errno == ENOENT) + /* If DOES_NOT_EXIST is not NULL, then don't call ERROR_CALLBACK + if the file does not exist. We treat lacking permission to + open the file as the file not existing; this case arises when + running the libgo syscall package tests as root. */ + if (does_not_exist != NULL && (errno == ENOENT || errno == EACCES)) *does_not_exist = 1; else error_callback (data, filename, errno);