<pre style='margin:0'>
Christopher Nielsen (mascguy) pushed a commit to branch master
in repository macports-legacy-support.
</pre>
<p><a href="https://github.com/macports/macports-legacy-support/commit/126e6cb43967d79a1874a3464fe3c5a751ab82cd">https://github.com/macports/macports-legacy-support/commit/126e6cb43967d79a1874a3464fe3c5a751ab82cd</a></p>
<pre style="white-space: pre; background: #F8F8F8"><span style='display:block; white-space:pre;color:#808000;'>commit 126e6cb43967d79a1874a3464fe3c5a751ab82cd
</span>Author: Fred Wright <fw@fwright.net>
AuthorDate: Mon Jun 30 21:31:36 2025 -0700
<span style='display:block; white-space:pre;color:#404040;'> fileinfo: Make sure we can tolerate an unexpected stat64.
</span><span style='display:block; white-space:pre;color:#404040;'>
</span><span style='display:block; white-space:pre;color:#404040;'> Although we only use 'struct stat' here (which may or may not be the
</span><span style='display:block; white-space:pre;color:#404040;'> same as a 'struct stat64'), just in case we unexpectedly get a stat64
</span><span style='display:block; white-space:pre;color:#404040;'> function, we should make sure the buffer is large enough to hold it.
</span><span style='display:block; white-space:pre;color:#404040;'>
</span><span style='display:block; white-space:pre;color:#404040;'> TESTED:
</span><span style='display:block; white-space:pre;color:#404040;'> Still works with updated buffer definition.
</span>---
tools/fileinfo.c | 18 +++++++++++-------
1 file changed, 11 insertions(+), 7 deletions(-)
<span style='display:block; white-space:pre;color:#808080;'>diff --git a/tools/fileinfo.c b/tools/fileinfo.c
</span><span style='display:block; white-space:pre;color:#808080;'>index 43bb167..3325c91 100644
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/tools/fileinfo.c
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/tools/fileinfo.c
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -235,7 +235,11 @@ static void
</span> report_stat(const char *name, lstat_fn_t *os_lstat, int verbose)
{
int err;
<span style='display:block; white-space:pre;background:#ffe0e0;'>- struct stat sb;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* Paranoia - make sure we can accomodate an unexpected stat64 */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ union stat_u {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ struct stat s;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ struct s64 __DARWIN_STRUCT_STAT64 s64;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ } sb;
</span> char rpath[MAXPATHLEN];
printf("lstat() for '%s':\n", name);
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -247,17 +251,17 @@ report_stat(const char *name, lstat_fn_t *os_lstat, int verbose)
</span> printf(" full path is %s\n", rpath);
}
}
<span style='display:block; white-space:pre;background:#ffe0e0;'>- err = (*os_lstat)(name, &sb);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ err = (*os_lstat)(name, &sb.s);
</span> if (err) {
printf(" *** failed: %s (%d)\n", strerror(errno), errno);
return;
}
<span style='display:block; white-space:pre;background:#ffe0e0;'>- report_type(sb.st_mode);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- report_time("atime ", &sb.st_atimespec);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- report_time("mtime ", &sb.st_mtimespec);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- report_time("ctime ", &sb.st_ctimespec);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ report_type(sb.s.st_mode);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ report_time("atime ", &sb.s.st_atimespec);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ report_time("mtime ", &sb.s.st_mtimespec);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ report_time("ctime ", &sb.s.st_ctimespec);
</span> #ifdef _DARWIN_FEATURE_64_BIT_INODE
<span style='display:block; white-space:pre;background:#ffe0e0;'>- report_time("birthtime", &sb.st_birthtimespec);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ report_time("birthtime", &sb.s.st_birthtimespec);
</span> #endif
}
</pre><pre style='margin:0'>
</pre>