bug#77621: coreutils-9.6.53-14af8 on OpenBSD 7.6

Pádraig Brady <[email protected]>
Newsgroups gmane.comp.gnu.core-utils.bugs
Message-ID <[email protected]>
On 08/04/2025 11:22, Bruno Haible wrote:
> Paul Eggert wrote:
>> I don't see the problem on cfarm220.cfarm.net with the current coreutils
> 
> That's because you are not on the /dev/wd0a disk on that machine.
> 
> What I see by single-stepping through "ls -Z ." in gdb is:
> 1. f->scontext gets set to "?".
> 2. Upon the first entry to function file_has_aclinfo_cache,
>     all 4 variables
>       static int unsupported_return;
>       static char *unsupported_scontext;
>       static int unsupported_scontext_err;
>       static dev_t unsupported_device;
>     are 0 or NULL, respectively. (As expected, since it's the first call
>     to this function.)
>     f->stat.st_dev is 0 (since "." is on the /dev/wd0a disk and this device
>     has major and minor number both 0).
>     Thus the condition (f->stat_ok && f->stat.st_dev == unsupported_device)
>     evaluates to true, and four lines later, in
>       ai->scontext = unsupported_scontext;
>     an scontext gets set to NULL.
> 
> The fix is obviously to ignore these 4 static variables if they have not
> been initialized. Done through the attached patch, which fixes the crash.

Excellent.
I'll also apply this logic to has_capability_cache().

Marking this as done.

thanks!
Pádraig
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.