On
  - OpenBSD 6.0,
  - NetBSD 7.1
I see a test failure:

  FAIL tests/ls/selinux-segfault.sh (exit status: 1)

Log is attached.

The cause is a crash that is easy to reproduce interactively:

  $ src/ls -Z .

In gdb, I get this stack trace (same on both platforms):
  #0 strlen
  #1 gobble_file (name = ".", type=arg_directory, inode=0, 
command_line_arg=true, dirname=0x0)
     at ls.c:3627
  #2 main () at ls.c:1812

The problem is that file_has_aclinfo_cache (called from ls.c:3526)
has returned
  ai = { size = 0, scontext = 0x0, scontext_err = 0, ... }

Bruno
====================================================
   GNU coreutils snapshot: ./tests/test-suite.log
====================================================

# TOTAL: 657
# PASS:  477
# SKIP:  179
# XFAIL: 0
# FAIL:  1
# XPASS: 0
# ERROR: 0

System information (uname -a): OpenBSD 6.0 GENERIC#2148

.. contents:: :depth: 2

FAIL: tests/ls/selinux-segfault
===============================

++ initial_cwd_=/home/bruno/coreutils-snapshot/build
+++ testdir_prefix_
+++ printf gt
++ pfx_=gt
+++ mktempd_ /home/bruno/coreutils-snapshot/build gt-selinux-segfault.sh.XXXX
+++ case $# in
+++ destdir_=/home/bruno/coreutils-snapshot/build
+++ template_=gt-selinux-segfault.sh.XXXX
+++ MAX_TRIES_=4
+++ case $destdir_ in
+++ destdir_slash_=/home/bruno/coreutils-snapshot/build/
+++ case $template_ in
++++ unset TMPDIR
+++ d=/home/bruno/coreutils-snapshot/build/gt-selinux-segfault.sh.wnKP
+++ case $d in
+++ :
+++ test -d /home/bruno/coreutils-snapshot/build/gt-selinux-segfault.sh.wnKP
++++ ls -dgo /home/bruno/coreutils-snapshot/build/gt-selinux-segfault.sh.wnKP
+++ perms='drwx------. 2 512 Jan 17 15:40 /home/bruno/coreutils-snapshot/build/gt-selinux-segfault.sh.wnKP'
+++ case $perms in
+++ :
+++ echo /home/bruno/coreutils-snapshot/build/gt-selinux-segfault.sh.wnKP
+++ return
++ test_dir_=/home/bruno/coreutils-snapshot/build/gt-selinux-segfault.sh.wnKP
++ cd /home/bruno/coreutils-snapshot/build/gt-selinux-segfault.sh.wnKP
++ case $srcdir in
++ srcdir=../..
++ builddir=..
++ export srcdir builddir
++ gl_init_sh_nl_='
'
++ IFS=' 	
'
++ for sig_ in 1 2 3 13 15
+++ expr 1 + 128
++ eval 'trap '\''Exit 129'\'' 1'
+++ trap 'Exit 129' 1
++ for sig_ in 1 2 3 13 15
+++ expr 2 + 128
++ eval 'trap '\''Exit 130'\'' 2'
+++ trap 'Exit 130' 2
++ for sig_ in 1 2 3 13 15
+++ expr 3 + 128
++ eval 'trap '\''Exit 131'\'' 3'
+++ trap 'Exit 131' 3
++ for sig_ in 1 2 3 13 15
+++ expr 13 + 128
++ eval 'trap '\''Exit 141'\'' 13'
+++ trap 'Exit 141' 13
++ for sig_ in 1 2 3 13 15
+++ expr 15 + 128
++ eval 'trap '\''Exit 143'\'' 15'
+++ trap 'Exit 143' 15
++ saved_IFS=' 	
'
++ IFS=:
++ new_PATH=
++ for dir in '$PATH'
++ IFS=' 	
'
++ case "$dir" in
++ test -d /home/bruno/coreutils-snapshot/build/src/.
++ new_PATH=/home/bruno/coreutils-snapshot/build/src
++ for dir in '$PATH'
++ IFS=' 	
'
++ case "$dir" in
++ test -d /bin/.
++ new_PATH=/home/bruno/coreutils-snapshot/build/src:/bin
++ for dir in '$PATH'
++ IFS=' 	
'
++ case "$dir" in
++ test -d /sbin/.
++ new_PATH=/home/bruno/coreutils-snapshot/build/src:/bin:/sbin
++ for dir in '$PATH'
++ IFS=' 	
'
++ case "$dir" in
++ test -d /usr/bin/.
++ new_PATH=/home/bruno/coreutils-snapshot/build/src:/bin:/sbin:/usr/bin
++ for dir in '$PATH'
++ IFS=' 	
'
++ case "$dir" in
++ test -d /usr/sbin/.
++ new_PATH=/home/bruno/coreutils-snapshot/build/src:/bin:/sbin:/usr/bin:/usr/sbin
++ for dir in '$PATH'
++ IFS=' 	
'
++ case "$dir" in
++ test -d /usr/local/bin/.
++ new_PATH=/home/bruno/coreutils-snapshot/build/src:/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin
++ for dir in '$PATH'
++ IFS=' 	
'
++ case "$dir" in
++ test -d /usr/local/sbin/.
++ new_PATH=/home/bruno/coreutils-snapshot/build/src:/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin
++ for dir in '$PATH'
++ IFS=' 	
'
++ case "$dir" in
++ test -d /usr/games/.
++ new_PATH=/home/bruno/coreutils-snapshot/build/src:/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:/usr/games
++ for dir in '$PATH'
++ IFS=' 	
'
++ case "$dir" in
++ IFS=' 	
'
++ PATH=/home/bruno/coreutils-snapshot/build/src:/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:/usr/games
++ export PATH
++ trap remove_tmp_ EXIT
+ path_prepend_ ./src
+ test 1 '!=' 0
+ path_dir_=./src
+ case $path_dir_ in
+ abs_path_dir_=/home/bruno/coreutils-snapshot/build/./src
+ case $abs_path_dir_ in
+ PATH=/home/bruno/coreutils-snapshot/build/./src:/home/bruno/coreutils-snapshot/build/src:/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:/usr/games
+ create_exe_shims_ /home/bruno/coreutils-snapshot/build/./src
+ case $EXEEXT in
+ return 0
+ shift
+ test 0 '!=' 0
+ export PATH
+ print_ver_ ls
+ require_built_ ls
+ skip_=no
+ for i in '"$@"'
+ case " $built_programs " in
+ test no = yes
+ test yes = yes
+ local i
+ for i in '$*'
+ env ls --version
ls (GNU coreutils) snapshot
Copyright (C) 2025 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <https://gnu.org/licenses/gpl.html>.
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.

Written by Richard M. Stallman and David MacKenzie.
+ f=/proc/sys
+ test -r /proc/sys
+ f=.
+ ls -l .
+ mkdir sedir
+ ln -sf missing sedir/broken
+ returns_ 1 ls -L -R -Z -m sedir
../tests/init.sh: line 612: 59385 Segmentation fault      (core dumped) "$@"
+ fail=1
+ Exit 1
+ set +e
+ exit 1
+ exit 1
+ remove_tmp_
+ __st=1
+ cleanup_
+ :
+ test '' = yes
+ cd /home/bruno/coreutils-snapshot/build
+ chmod -R u+rwx /home/bruno/coreutils-snapshot/build/gt-selinux-segfault.sh.wnKP
+ rm -rf /home/bruno/coreutils-snapshot/build/gt-selinux-segfault.sh.wnKP
+ exit 1
FAIL tests/ls/selinux-segfault.sh (exit status: 1)

Reply via email to