<pre style='margin:0'>
Clemens Lang (neverpanic) pushed a commit to branch master
in repository macports-base.
</pre>
<p><a href="https://github.com/macports/macports-base/commit/e3eed165ccca2693dae7b2e7ecd1698e382ea972">https://github.com/macports/macports-base/commit/e3eed165ccca2693dae7b2e7ecd1698e382ea972</a></p>
<pre style="white-space: pre; background: #F8F8F8">The following commit(s) were added to refs/heads/master by this push:
<span style='display:block; white-space:pre;color:#404040;'> new e3eed165c darwintrace: Don't fail on unreadable symlinks
</span>e3eed165c is described below
<span style='display:block; white-space:pre;color:#808000;'>commit e3eed165ccca2693dae7b2e7ecd1698e382ea972
</span>Author: Clemens Lang <cal@macports.org>
AuthorDate: Mon Nov 18 20:22:34 2024 +0100
<span style='display:block; white-space:pre;color:#404040;'> darwintrace: Don't fail on unreadable symlinks
</span><span style='display:block; white-space:pre;color:#404040;'>
</span><span style='display:block; white-space:pre;color:#404040;'> Don't call abort() just because we can't read a symlink. Instead, ignore
</span><span style='display:block; white-space:pre;color:#404040;'> the error and let it bubble up to the build that attempted the read.
</span>---
src/darwintracelib1.0/darwintrace.c | 15 ++++++++++++---
1 file changed, 12 insertions(+), 3 deletions(-)
<span style='display:block; white-space:pre;color:#808080;'>diff --git a/src/darwintracelib1.0/darwintrace.c b/src/darwintracelib1.0/darwintrace.c
</span><span style='display:block; white-space:pre;color:#808080;'>index af9d19a75..bcb9c97fd 100644
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/src/darwintracelib1.0/darwintrace.c
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/src/darwintracelib1.0/darwintrace.c
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -1162,9 +1162,18 @@ bool __darwintrace_is_in_sandbox(const char *path, int flags) {
</span> while (true) {
ssize_t linksize;
if (-1 == (linksize = readlink(path_native, link, maxLinkLength - 1))) {
<span style='display:block; white-space:pre;background:#ffe0e0;'>- free(path_native);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- perror("darwintrace: readlink");
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- abort();
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* If we can't read the link, don't error out, but jsut continue as if the path
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ * wasn't a link. The build will later on have to deal with the same error and
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ * will likely either gracefully handle it, or return a useful error message. */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ free(link);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ link = strdup(path_native);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if (!link) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ perror("darwintrace: strdup");
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ abort();
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ pathIsSymlink = false;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ break;
</span> }
link[linksize] = '\0';
if ((size_t) linksize < maxLinkLength - 1) {
</pre><pre style='margin:0'>
</pre>