You are not logged in.

#1 2025-08-07 05:04:20

rossboulet
Member
Registered: 2015-01-23
Posts: 35

[SOLVED] glibc 2.42 breaks file command in a tty

I haven't completely narrowed down the issue, but I stumbled across an issue using the file commend. The issue take two forms. In some cases, file coredumps every time. In others, it coredumps if I try to redirect stdout to /dev/null

It happened first on a qemu VM, then on a VirtualBox VM with a Windows 11 host, but I was able to reproduce it on a physical machine as well. file had not been updated, but I looked at its dependencies and noticed glibc had been upgraded from 2.41 to 2,42. So if I go back to glibc 2.41, the issue goes away. with glibc 2.42 the problem returns.

On the qemu VM:

cartman2% file eee
eee: ASCII text

cartman2% file eee >/dev/null  <<<---problem
zsh: invalid system call (core dumped)  file eee > /dev/null

cartman2% sudo pacman -U glibc-2.41+r65+ge7c419a29575-1-x86_64.pkg.tar.zst
loading packages...
warning: downgrading package glibc (2.42+r3+gbc13db739377-1 => 2.41+r65+ge7c419a29575-1)

cartman2% file eee >/dev/null  <<<---no problem
cartman2%

cartman2% sudo pacman -Su

Packages (1) glibc-2.42+r3+gbc13db739377-1

Total Installed Size:  49.70 MiB
Net Upgrade Size:       1.53 MiB

cartman2% file eee
eee: ASCII text

cartman2% file eee >/dev/null  <<<---problem returns
zsh: invalid system call (core dumped)  file eee > /dev/null
cartman2%

On a VirtualBox VM and on a physical machine with glibc 2.42 (and no redirection):

ike# file eee
Bad system call        (core dumped) file eee

Last edited by rossboulet (2025-08-10 08:11:14)


I really hate this damn machine,
I wish that they would sell it.
It never does just what I want,
But only what I tell it.    -Anonymous

Offline

#2 2025-08-07 07:33:30

seth
Member
From: Don't DM me only for attention
Registered: 2012-09-03
Posts: 73,706

Re: [SOLVED] glibc 2.42 breaks file command in a tty

There've been quite some termios patches in the latest glibc release, looks like a complete refactor…

https://wiki.archlinux.org/title/Core_d … _core_dump but afaiu the coredump is triggered by the redirection - is only file affected? And only /dev/null?
The troublesome system call will be

ioctl(1, TCGETS, 0x123456789abcdef)  = -1 ENOTTY

but that would affect eg. du as well?

Offline

#3 2025-08-07 18:00:40

rossboulet
Member
Registered: 2015-01-23
Posts: 35

Re: [SOLVED] glibc 2.42 breaks file command in a tty

seth wrote:

There've been quite some termios patches in the latest glibc release, looks like a complete refactor…

https://wiki.archlinux.org/title/Core_d … _core_dump but afaiu the coredump is triggered by the redirection - is only file affected? And only /dev/null?
The troublesome system call will be

ioctl(1, TCGETS, 0x123456789abcdef)  = -1 ENOTTY

but that would affect eg. du as well?

du had no issues. Your question prompted some further research. In attempting to create more documentation of the problem, I ssh'ed into the physical machine but the problem didn't happen in the ssh session. I'm revising the title to specify the problem seems to be reproduceable in a tty even with no redirection.

##### with glibc 2.42 in a tty - coredump

cartman2% pacman -Q glibc
glibc 2.42+r3+gbc13db739377-1

cartman2% file 000
zsh: invalid system call (core dumped)  file 000

### works if I pipe it to cat

cartman2% file 000 | cat
000: empty

cartman2%
##### with glibc 2.41 in a tty - works as expected

cartman2% pacman -Q glibc
glibc 2.41+r65+ge7c419a29575-1

cartman2% file 000
000: ASCII text
000: empty

cartman2%

I really hate this damn machine,
I wish that they would sell it.
It never does just what I want,
But only what I tell it.    -Anonymous

Offline

#4 2025-08-07 18:56:52

seth
Member
From: Don't DM me only for attention
Registered: 2012-09-03
Posts: 73,706

Re: [SOLVED] glibc 2.42 breaks file command in a tty

Do you have a strace and a backtrace (from gdb, see link in previous post) on this?

Offline

#5 2025-08-07 19:28:18

rossboulet
Member
Registered: 2015-01-23
Posts: 35

Re: [SOLVED] glibc 2.42 breaks file command in a tty

strace file abc

execve("/usr/bin/file", ["file", "abc"], 0x7ffd986aca98 /* 20 vars */) = 0
brk(NULL)                               = 0x55f06ef10000
access("/etc/ld.so.preload", R_OK)      = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "/etc/ld.so.cache", O_RDONLY|O_CLOEXEC) = 3
fstat(3, {st_mode=S_IFREG|0644, st_size=24579, ...}) = 0
mmap(NULL, 24579, PROT_READ, MAP_PRIVATE, 3, 0) = 0x7f0645686000
close(3)                                = 0
openat(AT_FDCWD, "/usr/lib/libmagic.so.1", O_RDONLY|O_CLOEXEC) = 3
read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\0\0\0\0\0\0\0\0"..., 832) = 832
fstat(3, {st_mode=S_IFREG|0755, st_size=174328, ...}) = 0
mmap(NULL, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f0645684000
mmap(NULL, 173160, PROT_READ, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x7f0645659000
mmap(0x7f064565c000, 122880, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x3000) = 0x7f064565c000
mmap(0x7f064567a000, 28672, PROT_READ, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x21000) = 0x7f064567a000
mmap(0x7f0645681000, 12288, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x28000) = 0x7f0645681000
close(3)                                = 0
openat(AT_FDCWD, "/usr/lib/libseccomp.so.2", O_RDONLY|O_CLOEXEC) = 3
read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\0\0\0\0\0\0\0\0"..., 832) = 832
fstat(3, {st_mode=S_IFREG|0755, st_size=133136, ...}) = 0
mmap(NULL, 131168, PROT_READ, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x7f0645638000
mmap(0x7f064563a000, 61440, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x2000) = 0x7f064563a000
mmap(0x7f0645649000, 57344, PROT_READ, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x11000) = 0x7f0645649000
mmap(0x7f0645657000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x1f000) = 0x7f0645657000
close(3)                                = 0
openat(AT_FDCWD, "/usr/lib/libc.so.6", O_RDONLY|O_CLOEXEC) = 3
read(3, "\177ELF\2\1\1\3\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0000x\2\0\0\0\0\0"..., 832) = 832
pread64(3, "\6\0\0\0\4\0\0\0@\0\0\0\0\0\0\0@\0\0\0\0\0\0\0@\0\0\0\0\0\0\0"..., 896, 64) = 896
fstat(3, {st_mode=S_IFREG|0755, st_size=2149728, ...}) = 0
pread64(3, "\6\0\0\0\4\0\0\0@\0\0\0\0\0\0\0@\0\0\0\0\0\0\0@\0\0\0\0\0\0\0"..., 896, 64) = 896
mmap(NULL, 2174000, PROT_READ, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x7f0645400000
mmap(0x7f0645424000, 1515520, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x24000) = 0x7f0645424000
mmap(0x7f0645596000, 454656, PROT_READ, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x196000) = 0x7f0645596000
mmap(0x7f0645605000, 24576, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x204000) = 0x7f0645605000
mmap(0x7f064560b000, 31792, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x7f064560b000
close(3)                                = 0
openat(AT_FDCWD, "/usr/lib/libzstd.so.1", O_RDONLY|O_CLOEXEC) = 3
read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\0\0\0\0\0\0\0\0"..., 832) = 832
fstat(3, {st_mode=S_IFREG|0755, st_size=935880, ...}) = 0
mmap(NULL, 933944, PROT_READ, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x7f064531b000
mmap(0x7f0645327000, 811008, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0xc000) = 0x7f0645327000
mmap(0x7f06453ed000, 69632, PROT_READ, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0xd2000) = 0x7f06453ed000
mmap(0x7f06453fe000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0xe3000) = 0x7f06453fe000
close(3)                                = 0
openat(AT_FDCWD, "/usr/lib/liblzma.so.5", O_RDONLY|O_CLOEXEC) = 3
read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\0\0\0\0\0\0\0\0"..., 832) = 832
fstat(3, {st_mode=S_IFREG|0755, st_size=211152, ...}) = 0
mmap(NULL, 209112, PROT_READ, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x7f06452e7000
mmap(0x7f06452eb000, 143360, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x4000) = 0x7f06452eb000
mmap(0x7f064530e000, 45056, PROT_READ, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x27000) = 0x7f064530e000
mmap(0x7f0645319000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x32000) = 0x7f0645319000
close(3)                                = 0
openat(AT_FDCWD, "/usr/lib/libbz2.so.1.0", O_RDONLY|O_CLOEXEC) = 3
read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\0\0\0\0\0\0\0\0"..., 832) = 832
fstat(3, {st_mode=S_IFREG|0755, st_size=74720, ...}) = 0
mmap(NULL, 76840, PROT_READ, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x7f0645625000
mmap(0x7f0645627000, 53248, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x2000) = 0x7f0645627000
mmap(0x7f0645634000, 8192, PROT_READ, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0xf000) = 0x7f0645634000
mmap(0x7f0645636000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x10000) = 0x7f0645636000
close(3)                                = 0
openat(AT_FDCWD, "/usr/lib/libz.so.1", O_RDONLY|O_CLOEXEC) = 3
read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\0\0\0\0\0\0\0\0"..., 832) = 832
fstat(3, {st_mode=S_IFREG|0755, st_size=100368, ...}) = 0
mmap(NULL, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f0645623000
mmap(NULL, 98320, PROT_READ, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x7f06452ce000
mmap(0x7f06452d1000, 57344, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x3000) = 0x7f06452d1000
mmap(0x7f06452df000, 24576, PROT_READ, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x11000) = 0x7f06452df000
mmap(0x7f06452e5000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x17000) = 0x7f06452e5000
close(3)                                = 0
mmap(NULL, 12288, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f0645620000
arch_prctl(ARCH_SET_FS, 0x7f0645620740) = 0
set_tid_address(0x7f0645620a10)         = 819
set_robust_list(0x7f0645620a20, 24)     = 0
rseq(0x7f0645620680, 0x20, 0, 0x53053053) = 0
mprotect(0x7f0645605000, 16384, PROT_READ) = 0
mprotect(0x7f06452e5000, 4096, PROT_READ) = 0
mprotect(0x7f0645636000, 4096, PROT_READ) = 0
mprotect(0x7f0645319000, 4096, PROT_READ) = 0
mprotect(0x7f06453fe000, 4096, PROT_READ) = 0
mprotect(0x7f0645657000, 4096, PROT_READ) = 0
mprotect(0x7f0645681000, 8192, PROT_READ) = 0
mprotect(0x55f04c398000, 4096, PROT_READ) = 0
mprotect(0x7f06456ce000, 8192, PROT_READ) = 0
prlimit64(0, RLIMIT_STACK, NULL, {rlim_cur=8192*1024, rlim_max=RLIM64_INFINITY}) = 0
getrandom("\x8b\x0a\xb4\xef\x0a\xed\x06\x8c", 8, GRND_NONBLOCK) = 8
munmap(0x7f0645686000, 24579)           = 0
brk(NULL)                               = 0x55f06ef10000
brk(0x55f06ef31000)                     = 0x55f06ef31000
openat(AT_FDCWD, "/usr/lib/locale/locale-archive", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "/usr/share/locale/locale.alias", O_RDONLY|O_CLOEXEC) = 3
fstat(3, {st_mode=S_IFREG|0644, st_size=2998, ...}) = 0
read(3, "# Locale name alias data base.\n#"..., 4096) = 2998
read(3, "", 4096)                       = 0
close(3)                                = 0
openat(AT_FDCWD, "/usr/lib/locale/C.UTF-8/LC_CTYPE", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "/usr/lib/locale/C.utf8/LC_CTYPE", O_RDONLY|O_CLOEXEC) = 3
fstat(3, {st_mode=S_IFREG|0644, st_size=367708, ...}) = 0
mmap(NULL, 367708, PROT_READ, MAP_PRIVATE, 3, 0) = 0x7f0645274000
close(3)                                = 0
openat(AT_FDCWD, "/usr/lib/gconv/gconv-modules.cache", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "/usr/lib/gconv/gconv-modules", O_RDONLY|O_CLOEXEC) = 3
fstat(3, {st_mode=S_IFREG|0644, st_size=3916, ...}) = 0
read(3, "# GNU libc iconv configuration.\n"..., 4096) = 3916
read(3, "", 4096)                       = 0
close(3)                                = 0
openat(AT_FDCWD, "/usr/lib/gconv/gconv-modules.d", O_RDONLY|O_NONBLOCK|O_CLOEXEC|O_DIRECTORY) = 3
fstat(3, {st_mode=S_IFDIR|0755, st_size=4096, ...}) = 0
getdents64(3, 0x55f06ef14130 /* 3 entries */, 32768) = 96
openat(AT_FDCWD, "/usr/lib/gconv/gconv-modules.d/gconv-modules-extra.conf", O_RDONLY|O_CLOEXEC) = 4
fstat(4, {st_mode=S_IFREG|0644, st_size=53974, ...}) = 0
read(4, "# GNU libc iconv configuration.\n"..., 4096) = 4096
read(4, "B1002//\tJUS_I.B1.002//\nmodule\tJU"..., 4096) = 4096
read(4, "59-5//\nalias\tISO_8859-5//\t\tISO-8"..., 4096) = 4096
read(4, "59-16//\t\tINTERNAL\t\tISO8859-16\t1\n"..., 4096) = 4096
read(4, "-SE-A\t1\nmodule\tINTERNAL\t\tEBCDIC-"..., 4096) = 4096
read(4, "97\t\t1\n\n#\tfrom\t\t\tto\t\t\tmodule\t\tcos"..., 4096) = 4096
read(4, "1\n\n#\tfrom\t\t\tto\t\t\tmodule\t\tcost\nal"..., 4096) = 4096
read(4, "6//\t\tIBM1046//\nalias\tCP1046//\t\tI"..., 4096) = 4096
read(4, "\tto\t\t\tmodule\t\tcost\nalias\tRUSCII/"..., 4096) = 4096
brk(0x55f06ef52000)                     = 0x55f06ef52000
read(4, "03//\nmodule\tCSN_369103//\t\tINTERN"..., 4096) = 4096
read(4, "\tmodule\t\tcost\nalias\tISO-IR-8-1//"..., 4096) = 4096
read(4, "IBM1156\t\t1\n\n#\tfrom\t\t\tto\t\t\tmodule"..., 4096) = 4096
read(4, "\t\tIBM1166//\nalias\tCP1166//\t\tIBM1"..., 4096) = 4096
read(4, "alias\tROMAN9//\t\tHP-ROMAN9//\nalia"..., 4096) = 726
read(4, "", 4096)                       = 0
close(4)                                = 0
getdents64(3, 0x55f06ef14130 /* 0 entries */, 32768) = 0
close(3)                                = 0
futex(0x7f064560a72c, FUTEX_WAKE_PRIVATE, 2147483647) = 0
prctl(PR_SET_NO_NEW_PRIVS, 1, 0, 0, 0)  = 0
seccomp(SECCOMP_SET_MODE_STRICT, 0x1, NULL) = -1 EINVAL (Invalid argument)
seccomp(SECCOMP_SET_MODE_FILTER, SECCOMP_FILTER_FLAG_TSYNC, NULL) = -1 EFAULT (Bad address)
seccomp(SECCOMP_SET_MODE_FILTER, SECCOMP_FILTER_FLAG_LOG, NULL) = -1 EFAULT (Bad address)
seccomp(SECCOMP_GET_ACTION_AVAIL, 0, [SECCOMP_RET_LOG]) = 0
seccomp(SECCOMP_GET_ACTION_AVAIL, 0, [SECCOMP_RET_KILL_PROCESS]) = 0
seccomp(SECCOMP_SET_MODE_FILTER, SECCOMP_FILTER_FLAG_SPEC_ALLOW, NULL) = -1 EFAULT (Bad address)
seccomp(SECCOMP_SET_MODE_FILTER, SECCOMP_FILTER_FLAG_NEW_LISTENER, NULL) = -1 EFAULT (Bad address)
seccomp(SECCOMP_GET_NOTIF_SIZES, 0, {seccomp_notif=80, seccomp_notif_resp=24, seccomp_data=64}) = 0
seccomp(SECCOMP_SET_MODE_FILTER, SECCOMP_FILTER_FLAG_TSYNC_ESRCH, NULL) = -1 EFAULT (Bad address)
prctl(PR_SET_NO_NEW_PRIVS, 1, 0, 0, 0)  = 0
seccomp(SECCOMP_SET_MODE_FILTER, 0, {len=63, filter=0x55f06ef41190}) = 0
newfstatat(AT_FDCWD, "/root/.magic.mgc", 0x7ffd5376b800, 0) = -1 ENOENT (No such file or directory)
newfstatat(AT_FDCWD, "/root/.magic", 0x7ffd5376b800, 0) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "/usr/share/file/misc/magic.mgc", O_RDONLY) = 3
fstat(3, {st_mode=S_IFREG|0644, st_size=10357200, ...}) = 0
mmap(NULL, 10357200, PROT_READ|PROT_WRITE, MAP_PRIVATE, 3, 0) = 0x7f0644800000
close(3)                                = 0
mprotect(0x7f0644800000, 10357200, PROT_READ) = 0
mmap(NULL, 135168, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f0645253000
fstat(1, {st_mode=S_IFIFO|0600, st_size=0, ...}) = 0
mmap(NULL, 7344128, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f06440ff000
newfstatat(AT_FDCWD, "abc", {st_mode=S_IFREG|0644, st_size=0, ...}, AT_SYMLINK_NOFOLLOW) = 0
munmap(0x7f06440ff000, 7344128)         = 0
write(1, "abc: empty\n", 11abc: empty
)            = 11
munmap(0x7f0644800000, 10357200)        = 0
munmap(0x7f0645253000, 135168)          = 0
exit_group(0)                           = ?
+++ exited with 0 +++

coredumpctl info 794

           PID: 794 (file)
           UID: 0 (root)
           GID: 0 (root)
        Signal: 31 (SYS)
     Timestamp: Thu 2025-08-07 19:12:07 UTC (4min 48s ago)
  Command Line: file abc
    Executable: /usr/bin/file
 Control Group: /user.slice/user-0.slice/session-1.scope
          Unit: session-1.scope
         Slice: user-0.slice
       Session: 1
     Owner UID: 0 (root)
       Boot ID: 47075ab78af64e0ea62bc377828e0315
    Machine ID: 46de833e1c444be99d3082b4e42cf52a
      Hostname: archlinux
       Storage: /var/lib/systemd/coredump/core.file.0.47075ab78af64e0ea62bc377828e0315.794.1754593927000000.zst (present)
  Size on Disk: 79.9K
       Message: Process 794 (file) of user 0 dumped core.
                
                Stack trace of thread 794:
                #0  0x00007f362290eb49 n/a (libc.so.6 + 0x10eb49)
                #1  0x00007f362288003a _IO_file_doallocate (libc.so.6 + 0x8003a)
                #2  0x00007f3622890226 _IO_doallocbuf (libc.so.6 + 0x90226)
                #3  0x00007f362288e099 _IO_file_overflow (libc.so.6 + 0x8e099)
                #4  0x00007f362288ecbb _IO_file_xsputn (libc.so.6 + 0x8ecbb)
                #5  0x00007f362285b426 n/a (libc.so.6 + 0x5b426)
                #6  0x00007f362285b50c n/a (libc.so.6 + 0x5b50c)
                #7  0x00007f3622866e35 n/a (libc.so.6 + 0x66e35)
                #8  0x00007f36229271fd __printf_chk (libc.so.6 + 0x1271fd)
                #9  0x000055d26775dbd0 n/a (/usr/bin/file + 0x3bd0)
                #10 0x000055d26775d075 n/a (/usr/bin/file + 0x3075)
                #11 0x00007f3622827675 n/a (libc.so.6 + 0x27675)
                #12 0x00007f3622827729 __libc_start_main (libc.so.6 + 0x27729)
                #13 0x000055d26775d7a5 n/a (/usr/bin/file + 0x37a5)
                ELF object binary architecture: AMD x86-64

coredumpctl debug 794

           PID: 794 (file)
           UID: 0 (root)
           GID: 0 (root)
        Signal: 31 (SYS)
     Timestamp: Thu 2025-08-07 19:12:07 UTC (5min ago)
  Command Line: file abc
    Executable: /usr/bin/file
 Control Group: /user.slice/user-0.slice/session-1.scope
          Unit: session-1.scope
         Slice: user-0.slice
       Session: 1
     Owner UID: 0 (root)
       Boot ID: 47075ab78af64e0ea62bc377828e0315
    Machine ID: 46de833e1c444be99d3082b4e42cf52a
      Hostname: archlinux
       Storage: /var/lib/systemd/coredump/core.file.0.47075ab78af64e0ea62bc377828e0315.794.1754593927000000.zst (present)
  Size on Disk: 79.9K
       Message: Process 794 (file) of user 0 dumped core.
                
                Stack trace of thread 794:
                #0  0x00007f362290eb49 n/a (libc.so.6 + 0x10eb49)
                #1  0x00007f362288003a _IO_file_doallocate (libc.so.6 + 0x8003a)
                #2  0x00007f3622890226 _IO_doallocbuf (libc.so.6 + 0x90226)
                #3  0x00007f362288e099 _IO_file_overflow (libc.so.6 + 0x8e099)
                #4  0x00007f362288ecbb _IO_file_xsputn (libc.so.6 + 0x8ecbb)
                #5  0x00007f362285b426 n/a (libc.so.6 + 0x5b426)
                #6  0x00007f362285b50c n/a (libc.so.6 + 0x5b50c)
                #7  0x00007f3622866e35 n/a (libc.so.6 + 0x66e35)
                #8  0x00007f36229271fd __printf_chk (libc.so.6 + 0x1271fd)
                #9  0x000055d26775dbd0 n/a (/usr/bin/file + 0x3bd0)
                #10 0x000055d26775d075 n/a (/usr/bin/file + 0x3075)
                #11 0x00007f3622827675 n/a (libc.so.6 + 0x27675)
                #12 0x00007f3622827729 __libc_start_main (libc.so.6 + 0x27729)
                #13 0x000055d26775d7a5 n/a (/usr/bin/file + 0x37a5)
                ELF object binary architecture: AMD x86-64

GNU gdb (GDB) 16.3
Copyright (C) 2024 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://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.
Type "show copying" and "show warranty" for details.
This GDB was configured as "x86_64-pc-linux-gnu".
Type "show configuration" for configuration details.
For bug reporting instructions, please see:
<https://www.gnu.org/software/gdb/bugs/>.
Find the GDB manual and other documentation resources online at:
    <http://www.gnu.org/software/gdb/documentation/>.

For help, type "help".
Type "apropos word" to search for commands related to "word"...
Reading symbols from /usr/bin/file...

This GDB supports auto-downloading debuginfo from the following URLs:
  <https://debuginfod.archlinux.org>
[?2004hEnable debuginfod for this session? (y or [n]) y
[?2004l
Debuginfod has been enabled.
To make this setting permanent, add 'set debuginfod enabled on' to .gdbinit.
Reading symbols from /root/.cache/debuginfod_client/da159afd79935522600c4e92965ee8c7e2a84fdd/debuginfo...
[New LWP 794]
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/usr/lib/libthread_db.so.1".
Core was generated by `/usr/bin/file abc'.
Program terminated with signal SIGSYS, Bad system call.
#0  __isatty_nostatus (fd=1) at ../sysdeps/unix/sysv/linux/isatty_nostatus.c:25
25	  return INTERNAL_SYSCALL_CALL (ioctl, fd, TCGETS2, &k_termios) == 0;
[?2004h(gdb) thread apply all bactrace full
[?2004l
Thread 1 (Thread 0x7f3622a66740 (LWP 794)):
[?2004h(gdb) thread apply all bactrace full[C[1@k
[?2004l
Thread 1 (Thread 0x7f3622a66740 (LWP 794)):
#0  __isatty_nostatus (fd=1) at ../sysdeps/unix/sysv/linux/isatty_nostatus.c:25
        k_termios = {c_iflag = 1041266496, c_oflag = 32767, c_cflag = 1041266048, c_lflag = 32767, c_line = 0 '\000', c_cc = "\000\000\000\000\000\000\000\233\212\202\"6\177\000\000\241\347\321g", c_ispeed = 21970, c_ospeed = 8}
#1  0x00007f362288003a in __GI__IO_file_doallocate (fp=0x7f3622a0a5c0 <_IO_2_1_stdout_>) at filedoalloc.c:83
        size = 8192
        p = <optimized out>
        st = {st_dev = 6, st_ino = 20, st_nlink = 1, st_mode = 8576, st_uid = 0, st_gid = 5, __pad0 = 0, st_rdev = 1025, st_size = 0, st_blksize = 4096, st_blocks = 0, st_atim = {tv_sec = 1754593920, tv_nsec = 0}, st_mtim = {tv_sec = 1754593920, tv_nsec = 0}, st_ctim = {tv_sec = 1754593140, tv_nsec = 498896255}, __glibc_reserved = {0, 0, 0}}
#2  0x00007f3622890226 in __GI__IO_doallocbuf (fp=0x7f3622828a9b <find_derivation+1371>) at /usr/src/debug/glibc/glibc/libio/libioP.h:1041
No locals.
#3  __GI__IO_doallocbuf (fp=fp@entry=0x7f3622a0a5c0 <_IO_2_1_stdout_>) at genops.c:368
No locals.
#4  0x00007f362288e099 in _IO_new_file_overflow (f=0x7f3622a0a5c0 <_IO_2_1_stdout_>, ch=-1) at fileops.c:779
No locals.
#5  0x00007f362288ecbb in _IO_new_file_xsputn (f=0x7f3622a0a5c0 <_IO_2_1_stdout_>, data=<optimized out>, n=1) at /usr/src/debug/glibc/glibc/libio/libioP.h:1041
        block_size = <optimized out>
        do_write = <optimized out>
        s = <optimized out>
        to_do = <optimized out>
        must_flush = <optimized out>
        count = <optimized out>
#6  _IO_new_file_xsputn (f=0x7f3622a0a5c0 <_IO_2_1_stdout_>, data=<optimized out>, n=1) at fileops.c:1258
        s = <optimized out>
        to_do = 1
        must_flush = 0
        count = 0
        p = <optimized out>
        block_size = <optimized out>
        do_write = <optimized out>
#7  0x00007f362285b426 in __printf_buffer_flush_to_file (buf=buf@entry=0x7fff3e107810) at ../libio/libioP.h:1041
        count = <optimized out>
        __PRETTY_FUNCTION__ = "__printf_buffer_flush_to_file"
#8  0x00007f362285b50c in __printf_buffer_to_file_done (buf=buf@entry=0x7fff3e107810) at printf_buffer_to_file.c:120
No locals.
#9  0x00007f3622866e35 in __vfprintf_internal (s=0x7f3622a0a5c0 <_IO_2_1_stdout_>, format=0x55d26775fac4 "%lc", ap=ap@entry=0x7fff3e107910, mode_flags=mode_flags@entry=2) at vfprintf-internal.c:1544
        wrap = {base = {write_base = 0x7fff3e107840 "ax\020>\377\177", write_ptr = 0x7fff3e107841 "x\020>\377\177", write_end = 0x7fff3e1078c0 "`y\020>\377\177", written = 1, mode = __printf_buffer_mode_to_file}, fp = 0x7f3622a0a5c0 <_IO_2_1_stdout_>, stage = "ax\020>\377\177\000\000\000y\020>\377\177\000\000\000\000\000\000\000\000\000\000\370x\020>\377\177\000\000\320x\020>\377\177\000\000ē\202\"6\177\000\000q", '\000' <repeats 15 times>, "\320x\020>\377\177\000\000\240y\020>\377\177\000\000h\271\324g\322U\000\000\004\000\000\000\377\177\000\000Xy\020>\377\177\000\000\001\000\000\000\005", '\000' <repeats 18 times>}
        done = <optimized out>
        __result = <optimized out>
#10 0x00007f36229271fd in ___printf_chk (flag=flag@entry=2, format=format@entry=0x55d26775fac4 "%lc") at printf_chk.c:33
        mode = 2
        ap = {{gp_offset = 24, fp_offset = 48, overflow_arg_area = 0x7fff3e1079f0, reg_save_area = 0x7fff3e107930}}
        ret = <optimized out>
#11 0x000055d26775dbd0 in printf (__fmt=0x55d26775fac4 "%lc") at /usr/include/bits/stdio2.h:118
No locals.
#12 fname_print (inname=0x7fff3e108e41 "bc") at /usr/src/debug/file/file/src/file.c:605
        n = 2
        state = {__count = 0, __value = {__wch = 0, __wchb = "\000\000\000"}}
        nextchar = 97 L'a'
        bytesconsumed = 1
        n = <optimized out>
        state = <optimized out>
        nextchar = <optimized out>
        bytesconsumed = <optimized out>
#13 process (ms=ms@entry=0x55d267d20060, inname=0x7fff3e108e40 "abc", wid=wid@entry=3) at /usr/src/debug/file/file/src/file.c:637
        pname = <optimized out>
        type = <optimized out>
        c = <optimized out>
        std_in = 0
        haderror = 0
#14 0x000055d26775d075 in main (argc=2, argv=0x7fff3e107c78) at /usr/src/debug/file/file/src/file.c:441
        c = <optimized out>
        i = <optimized out>
        j = <optimized out>
        wid = <optimized out>
        nw = <optimized out>
        action = 0
        didsomefiles = 0
        errflg = 0
        flags = 67108864
        e = 0
        sandbox = <optimized out>
        magic = 0x55d267d20060
        longindex = 0
        magicfile = 0x0
        progname = <optimized out>
[?2004h(gdb) bt
[?2004l
#0  __isatty_nostatus (fd=1) at ../sysdeps/unix/sysv/linux/isatty_nostatus.c:25
#1  0x00007f362288003a in __GI__IO_file_doallocate (fp=0x7f3622a0a5c0 <_IO_2_1_stdout_>) at filedoalloc.c:83
#2  0x00007f3622890226 in __GI__IO_doallocbuf (fp=0x7f3622828a9b <find_derivation+1371>) at /usr/src/debug/glibc/glibc/libio/libioP.h:1041
#3  __GI__IO_doallocbuf (fp=fp@entry=0x7f3622a0a5c0 <_IO_2_1_stdout_>) at genops.c:368
#4  0x00007f362288e099 in _IO_new_file_overflow (f=0x7f3622a0a5c0 <_IO_2_1_stdout_>, ch=-1) at fileops.c:779
#5  0x00007f362288ecbb in _IO_new_file_xsputn (f=0x7f3622a0a5c0 <_IO_2_1_stdout_>, data=<optimized out>, n=1) at /usr/src/debug/glibc/glibc/libio/libioP.h:1041
#6  _IO_new_file_xsputn (f=0x7f3622a0a5c0 <_IO_2_1_stdout_>, data=<optimized out>, n=1) at fileops.c:1258
#7  0x00007f362285b426 in __printf_buffer_flush_to_file (buf=buf@entry=0x7fff3e107810) at ../libio/libioP.h:1041
#8  0x00007f362285b50c in __printf_buffer_to_file_done (buf=buf@entry=0x7fff3e107810) at printf_buffer_to_file.c:120
#9  0x00007f3622866e35 in __vfprintf_internal (s=0x7f3622a0a5c0 <_IO_2_1_stdout_>, format=0x55d26775fac4 "%lc", ap=ap@entry=0x7fff3e107910, 
    mode_flags=mode_flags@entry=2) at vfprintf-internal.c:1544
#10 0x00007f36229271fd in ___printf_chk (flag=flag@entry=2, format=format@entry=0x55d26775fac4 "%lc") at printf_chk.c:33
#11 0x000055d26775dbd0 in printf (__fmt=0x55d26775fac4 "%lc") at /usr/include/bits/stdio2.h:118
#12 fname_print (inname=0x7fff3e108e41 "bc") at /usr/src/debug/file/file/src/file.c:605
#13 process (ms=ms@entry=0x55d267d20060, inname=0x7fff3e108e40 "abc", wid=wid@entry=3) at /usr/src/debug/file/file/src/file.c:637
#14 0x000055d26775d075 in main (argc=2, argv=0x7fff3e107c78) at /usr/src/debug/file/file/src/file.c:441
[?2004h(gdb) q
[?2004l

I really hate this damn machine,
I wish that they would sell it.
It never does just what I want,
But only what I tell it.    -Anonymous

Offline

#6 2025-08-07 19:46:27

seth
Member
From: Don't DM me only for attention
Registered: 2012-09-03
Posts: 73,706

Re: [SOLVED] glibc 2.42 breaks file command in a tty

strace'ing also prevents the segfault?
Do you get backtrace symbols w/ https://wiki.archlinux.org/title/Debuginfod ?
Looks like malloc, makes me wonder whether it's more https://gitlab.archlinux.org/archlinux/ … 26b0f82ccf than the update…

Offline

#7 2025-08-07 21:35:04

rossboulet
Member
Registered: 2015-01-23
Posts: 35

Re: [SOLVED] glibc 2.42 breaks file command in a tty

I saw that in the strace but it didn't snap. It worked because I piped stdout and stderr to a file. Running strace file abc with no pipe does dump.

I haven't done the other things you asked about. I'm headed out the door but I can do them later if you need them.

Here is an strace with no pipe:

execve("/usr/bin/file", ["file", "abc"], 0x7ffef2cdb398 /* 21 vars */) = 0
brk(NULL)                               = 0x55589166c000
access("/etc/ld.so.preload", R_OK)      = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "/etc/ld.so.cache", O_RDONLY|O_CLOEXEC) = 3
fstat(3, {st_mode=S_IFREG|0644, st_size=24667, ...}) = 0
mmap(NULL, 24667, PROT_READ, MAP_PRIVATE, 3, 0) = 0x7f7240cb0000
close(3)                                = 0
openat(AT_FDCWD, "/usr/lib/libmagic.so.1", O_RDONLY|O_CLOEXEC) = 3
read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\0\0\0\0\0\0\0\0"..., 832) = 832
fstat(3, {st_mode=S_IFREG|0755, st_size=174328, ...}) = 0
mmap(NULL, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f7240cae000
mmap(NULL, 173160, PROT_READ, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x7f7240c83000
mmap(0x7f7240c86000, 122880, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x3000) = 0x7f7240c86000
mmap(0x7f7240ca4000, 28672, PROT_READ, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x21000) = 0x7f7240ca4000
mmap(0x7f7240cab000, 12288, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x28000) = 0x7f7240cab000
close(3)                                = 0
openat(AT_FDCWD, "/usr/lib/libseccomp.so.2", O_RDONLY|O_CLOEXEC) = 3
read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\0\0\0\0\0\0\0\0"..., 832) = 832
fstat(3, {st_mode=S_IFREG|0755, st_size=133136, ...}) = 0
mmap(NULL, 131168, PROT_READ, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x7f7240c62000
mmap(0x7f7240c64000, 61440, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x2000) = 0x7f7240c64000
mmap(0x7f7240c73000, 57344, PROT_READ, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x11000) = 0x7f7240c73000
mmap(0x7f7240c81000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x1f000) = 0x7f7240c81000
close(3)                                = 0
openat(AT_FDCWD, "/usr/lib/libc.so.6", O_RDONLY|O_CLOEXEC) = 3
read(3, "\177ELF\2\1\1\3\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0000x\2\0\0\0\0\0"..., 832) = 832
pread64(3, "\6\0\0\0\4\0\0\0@\0\0\0\0\0\0\0@\0\0\0\0\0\0\0@\0\0\0\0\0\0\0"..., 896, 64) = 896
fstat(3, {st_mode=S_IFREG|0755, st_size=2149728, ...}) = 0
pread64(3, "\6\0\0\0\4\0\0\0@\0\0\0\0\0\0\0@\0\0\0\0\0\0\0@\0\0\0\0\0\0\0"..., 896, 64) = 896
mmap(NULL, 2174000, PROT_READ, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x7f7240a00000
mmap(0x7f7240a24000, 1515520, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x24000) = 0x7f7240a24000
mmap(0x7f7240b96000, 454656, PROT_READ, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x196000) = 0x7f7240b96000
mmap(0x7f7240c05000, 24576, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x204000) = 0x7f7240c05000
mmap(0x7f7240c0b000, 31792, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x7f7240c0b000
close(3)                                = 0
openat(AT_FDCWD, "/usr/lib/libzstd.so.1", O_RDONLY|O_CLOEXEC) = 3
read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\0\0\0\0\0\0\0\0"..., 832) = 832
fstat(3, {st_mode=S_IFREG|0755, st_size=935880, ...}) = 0
mmap(NULL, 933944, PROT_READ, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x7f724091b000
mmap(0x7f7240927000, 811008, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0xc000) = 0x7f7240927000
mmap(0x7f72409ed000, 69632, PROT_READ, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0xd2000) = 0x7f72409ed000
mmap(0x7f72409fe000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0xe3000) = 0x7f72409fe000
close(3)                                = 0
openat(AT_FDCWD, "/usr/lib/liblzma.so.5", O_RDONLY|O_CLOEXEC) = 3
read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\0\0\0\0\0\0\0\0"..., 832) = 832
fstat(3, {st_mode=S_IFREG|0755, st_size=211152, ...}) = 0
mmap(NULL, 209112, PROT_READ, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x7f7240c2e000
mmap(0x7f7240c32000, 143360, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x4000) = 0x7f7240c32000
mmap(0x7f7240c55000, 45056, PROT_READ, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x27000) = 0x7f7240c55000
mmap(0x7f7240c60000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x32000) = 0x7f7240c60000
close(3)                                = 0
openat(AT_FDCWD, "/usr/lib/libbz2.so.1.0", O_RDONLY|O_CLOEXEC) = 3
read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\0\0\0\0\0\0\0\0"..., 832) = 832
fstat(3, {st_mode=S_IFREG|0755, st_size=74720, ...}) = 0
mmap(NULL, 76840, PROT_READ, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x7f7240c1b000
mmap(0x7f7240c1d000, 53248, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x2000) = 0x7f7240c1d000
mmap(0x7f7240c2a000, 8192, PROT_READ, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0xf000) = 0x7f7240c2a000
mmap(0x7f7240c2c000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x10000) = 0x7f7240c2c000
close(3)                                = 0
openat(AT_FDCWD, "/usr/lib/libz.so.1", O_RDONLY|O_CLOEXEC) = 3
read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\0\0\0\0\0\0\0\0"..., 832) = 832
fstat(3, {st_mode=S_IFREG|0755, st_size=100368, ...}) = 0
mmap(NULL, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f7240c19000
mmap(NULL, 98320, PROT_READ, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x7f7240902000
mmap(0x7f7240905000, 57344, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x3000) = 0x7f7240905000
mmap(0x7f7240913000, 24576, PROT_READ, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x11000) = 0x7f7240913000
mmap(0x7f7240919000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x17000) = 0x7f7240919000
close(3)                                = 0
mmap(NULL, 12288, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f7240c16000
arch_prctl(ARCH_SET_FS, 0x7f7240c16740) = 0
set_tid_address(0x7f7240c16a10)         = 1404
set_robust_list(0x7f7240c16a20, 24)     = 0
rseq(0x7f7240c16680, 0x20, 0, 0x53053053) = 0
mprotect(0x7f7240c05000, 16384, PROT_READ) = 0
mprotect(0x7f7240919000, 4096, PROT_READ) = 0
mprotect(0x7f7240c2c000, 4096, PROT_READ) = 0
mprotect(0x7f7240c60000, 4096, PROT_READ) = 0
mprotect(0x7f72409fe000, 4096, PROT_READ) = 0
mprotect(0x7f7240c81000, 4096, PROT_READ) = 0
mprotect(0x7f7240cab000, 8192, PROT_READ) = 0
mprotect(0x5558700f0000, 4096, PROT_READ) = 0
mprotect(0x7f7240cf8000, 8192, PROT_READ) = 0
prlimit64(0, RLIMIT_STACK, NULL, {rlim_cur=8192*1024, rlim_max=RLIM64_INFINITY}) = 0
getrandom("\xd1\xa4\x98\x9b\x02\x4c\xb6\xc2", 8, GRND_NONBLOCK) = 8
munmap(0x7f7240cb0000, 24667)           = 0
brk(NULL)                               = 0x55589166c000
brk(0x55589168d000)                     = 0x55589168d000
openat(AT_FDCWD, "/usr/lib/locale/locale-archive", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "/usr/share/locale/locale.alias", O_RDONLY|O_CLOEXEC) = 3
fstat(3, {st_mode=S_IFREG|0644, st_size=2998, ...}) = 0
read(3, "# Locale name alias data base.\n#"..., 4096) = 2998
read(3, "", 4096)                       = 0
close(3)                                = 0
openat(AT_FDCWD, "/usr/lib/locale/C.UTF-8/LC_CTYPE", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "/usr/lib/locale/C.utf8/LC_CTYPE", O_RDONLY|O_CLOEXEC) = 3
fstat(3, {st_mode=S_IFREG|0644, st_size=367708, ...}) = 0
mmap(NULL, 367708, PROT_READ, MAP_PRIVATE, 3, 0) = 0x7f72408a8000
close(3)                                = 0
openat(AT_FDCWD, "/usr/lib/gconv/gconv-modules.cache", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "/usr/lib/gconv/gconv-modules", O_RDONLY|O_CLOEXEC) = 3
fstat(3, {st_mode=S_IFREG|0644, st_size=3916, ...}) = 0
read(3, "# GNU libc iconv configuration.\n"..., 4096) = 3916
read(3, "", 4096)                       = 0
close(3)                                = 0
openat(AT_FDCWD, "/usr/lib/gconv/gconv-modules.d", O_RDONLY|O_NONBLOCK|O_CLOEXEC|O_DIRECTORY) = 3
fstat(3, {st_mode=S_IFDIR|0755, st_size=4096, ...}) = 0
getdents64(3, 0x555891670130 /* 3 entries */, 32768) = 96
openat(AT_FDCWD, "/usr/lib/gconv/gconv-modules.d/gconv-modules-extra.conf", O_RDONLY|O_CLOEXEC) = 4
fstat(4, {st_mode=S_IFREG|0644, st_size=53974, ...}) = 0
read(4, "# GNU libc iconv configuration.\n"..., 4096) = 4096
read(4, "B1002//\tJUS_I.B1.002//\nmodule\tJU"..., 4096) = 4096
read(4, "59-5//\nalias\tISO_8859-5//\t\tISO-8"..., 4096) = 4096
read(4, "59-16//\t\tINTERNAL\t\tISO8859-16\t1\n"..., 4096) = 4096
read(4, "-SE-A\t1\nmodule\tINTERNAL\t\tEBCDIC-"..., 4096) = 4096
read(4, "97\t\t1\n\n#\tfrom\t\t\tto\t\t\tmodule\t\tcos"..., 4096) = 4096
read(4, "1\n\n#\tfrom\t\t\tto\t\t\tmodule\t\tcost\nal"..., 4096) = 4096
read(4, "6//\t\tIBM1046//\nalias\tCP1046//\t\tI"..., 4096) = 4096
read(4, "\tto\t\t\tmodule\t\tcost\nalias\tRUSCII/"..., 4096) = 4096
brk(0x5558916ae000)                     = 0x5558916ae000
read(4, "03//\nmodule\tCSN_369103//\t\tINTERN"..., 4096) = 4096
read(4, "\tmodule\t\tcost\nalias\tISO-IR-8-1//"..., 4096) = 4096
read(4, "IBM1156\t\t1\n\n#\tfrom\t\t\tto\t\t\tmodule"..., 4096) = 4096
read(4, "\t\tIBM1166//\nalias\tCP1166//\t\tIBM1"..., 4096) = 4096
read(4, "alias\tROMAN9//\t\tHP-ROMAN9//\nalia"..., 4096) = 726
read(4, "", 4096)                       = 0
close(4)                                = 0
getdents64(3, 0x555891670130 /* 0 entries */, 32768) = 0
close(3)                                = 0
futex(0x7f7240c0a72c, FUTEX_WAKE_PRIVATE, 2147483647) = 0
prctl(PR_SET_NO_NEW_PRIVS, 1, 0, 0, 0)  = 0
seccomp(SECCOMP_SET_MODE_STRICT, 0x1, NULL) = -1 EINVAL (Invalid argument)
seccomp(SECCOMP_SET_MODE_FILTER, SECCOMP_FILTER_FLAG_TSYNC, NULL) = -1 EFAULT (Bad address)
seccomp(SECCOMP_SET_MODE_FILTER, SECCOMP_FILTER_FLAG_LOG, NULL) = -1 EFAULT (Bad address)
seccomp(SECCOMP_GET_ACTION_AVAIL, 0, [SECCOMP_RET_LOG]) = 0
seccomp(SECCOMP_GET_ACTION_AVAIL, 0, [SECCOMP_RET_KILL_PROCESS]) = 0
seccomp(SECCOMP_SET_MODE_FILTER, SECCOMP_FILTER_FLAG_SPEC_ALLOW, NULL) = -1 EFAULT (Bad address)
seccomp(SECCOMP_SET_MODE_FILTER, SECCOMP_FILTER_FLAG_NEW_LISTENER, NULL) = -1 EFAULT (Bad address)
seccomp(SECCOMP_GET_NOTIF_SIZES, 0, {seccomp_notif=80, seccomp_notif_resp=24, seccomp_data=64}) = 0
seccomp(SECCOMP_SET_MODE_FILTER, SECCOMP_FILTER_FLAG_TSYNC_ESRCH, NULL) = -1 EFAULT (Bad address)
prctl(PR_SET_NO_NEW_PRIVS, 1, 0, 0, 0)  = 0
seccomp(SECCOMP_SET_MODE_FILTER, 0, {len=63, filter=0x55589169d190}) = 0
newfstatat(AT_FDCWD, "/root/.magic.mgc", 0x7ffee9c265f0, 0) = -1 ENOENT (No such file or directory)
newfstatat(AT_FDCWD, "/root/.magic", 0x7ffee9c265f0, 0) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "/usr/share/file/misc/magic.mgc", O_RDONLY) = 3
fstat(3, {st_mode=S_IFREG|0644, st_size=10357200, ...}) = 0
mmap(NULL, 10357200, PROT_READ|PROT_WRITE, MAP_PRIVATE, 3, 0) = 0x7f723fe00000
close(3)                                = 0
mprotect(0x7f723fe00000, 10357200, PROT_READ) = 0
mmap(NULL, 135168, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f7240887000
fstat(1, {st_mode=S_IFCHR|0600, st_rdev=makedev(0x4, 0x1), ...}) = 0
ioctl(1, TCGETS2, {c_iflag=INPCK|IGNCR|IXON|IMAXBEL|IUTF8|0xe9c20000, c_oflag=NL1|CR3|XTABS|BS1|VT1|FF0|OLCUC|ONLCR|OCRNL|ONOCR|ONLRET|OFILL|OFDEL, c_cflag=B0|B75<<IBSHIFT|CS6|CSTOPB|CREAD|PARODD|CMSPAR|CRTSCTS|0x29c06000, c_lflag=ICANON|XCASE|ECHO|ECHOE|ECHOK|ECHONL|NOFLSH|ECHOCTL|ECHOPRT|ECHOKE|FLUSHO|PENDIN|TOSTOP|0x2000, ...}) = 16
+++ killed by SIGSYS (core dumped) +++

I really hate this damn machine,
I wish that they would sell it.
It never does just what I want,
But only what I tell it.    -Anonymous

Offline

#8 2025-08-07 22:22:59

seth
Member
From: Don't DM me only for attention
Registered: 2012-09-03
Posts: 73,706

Re: [SOLVED] glibc 2.42 breaks file command in a tty

ioctl(1, TCGETS2, {c_iflag=INPCK|IGNCR|IXON|IMAXBEL|IUTF8|0xe9c20000, c_oflag=NL1|CR3|XTABS|BS1|VT1|FF0|OLCUC|ONLCR|OCRNL|ONOCR|ONLRET|OFILL|OFDEL, c_cflag=B0|B75<<IBSHIFT|CS6|CSTOPB|CREAD|PARODD|CMSPAR|CRTSCTS|0x29c06000, c_lflag=ICANON|XCASE|ECHO|ECHOE|ECHOK|ECHONL|NOFLSH|ECHOCTL|ECHOPRT|ECHOKE|FLUSHO|PENDIN|TOSTOP|0x2000, ...}) = 16
+++ killed by SIGSYS (core dumped) +++

I suspect https://sourceware.org/git/?p=glibc.git … 14632fbb5f would have mandated the reverted https://sourceware.org/git/?p=glibc.git … 3779995a86 ?
Try to disable seccomp, file only allows TCGETS

file -S abc

Offline

#9 2025-08-07 23:02:03

Toolybird
Member
Registered: 2017-09-30
Posts: 87

Offline

#10 2025-08-08 06:34:09

seth
Member
From: Don't DM me only for attention
Registered: 2012-09-03
Posts: 73,706

Re: [SOLVED] glibc 2.42 breaks file command in a tty

So ftr: yeah, it's seccomp+TCGETS2

Offline

#11 2025-08-10 06:15:55

StarWolf3000
Member
Registered: 2025-06-23
Posts: 62

Re: [SOLVED] glibc 2.42 breaks file command in a tty


Mainboard: GIGABYTE B550 AORUS ELITE V2 | CPU: Ryzen 7 5800X | RAM: 32 GB
GPU: GeForce RTX 4060 8 GB (580.119.02 proprietary) | Display: BenQ BL2405 1920x1080
Kernel: 6.18.8 stable | Boot Manager: GRUB2 | DE: KDE Plasma | Login Manager: SDDM | Compositor: KWin

Offline

Board footer

Powered by FluxBB