summaryrefslogtreecommitdiff
path: root/libbacktrace
diff options
context:
space:
mode:
authorIan Lance Taylor <iant@golang.org>2020-05-13 10:18:45 -0700
committerIan Lance Taylor <iant@golang.org>2020-05-13 10:19:58 -0700
commit702adbb2fff0cc043f9c4e1af890421cb238cd18 (patch)
tree9d07ba81878c32eabc9010447a24b9a1b48ab1c7 /libbacktrace
parent287552950d56be47adb6b6bf2eae2d612233eaec (diff)
libbacktrace: treat EACCESS like ENOENT
libbacktrace/ PR go/95061 * posix.c (backtrace_open): Treat EACCESS like ENOENT.
Diffstat (limited to 'libbacktrace')
-rw-r--r--libbacktrace/ChangeLog6
-rw-r--r--libbacktrace/posix.c6
2 files changed, 11 insertions, 1 deletions
diff --git a/libbacktrace/ChangeLog b/libbacktrace/ChangeLog
index 9668906d20f..89b690d415e 100644
--- a/libbacktrace/ChangeLog
+++ b/libbacktrace/ChangeLog
@@ -1,3 +1,9 @@
+2020-05-13 Ian Lance Taylor <iant@golang.org>
+
+ PR go/95061
+ * posix.c (backtrace_open): Treat EACCESS like ENOENT.
+
+2020-05-12 H.J. Lu <hongjiu.lu@intel.com>
* Makefile.am (AM_CFLAGS): Add $(CET_HOST_FLAGS).
* configure.ac: Add GCC_CET_HOST_FLAGS(CET_HOST_FLAGS) and
diff --git a/libbacktrace/posix.c b/libbacktrace/posix.c
index 356e72b4a3b..a2c88dd8e4a 100644
--- a/libbacktrace/posix.c
+++ b/libbacktrace/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);