Bug#1108549: procps: w segfaults when run as non-root user
Andrew Bower
andrew at bower.uk
Wed Jul 23 22:31:47 BST 2025
Hi,
On Mon, Jun 30, 2025 at 11:36:59PM +0100, Andrew Bower wrote:
> Running 'w' as a non-root user on i386 segfaults:
>
> $ gdb w
> GNU gdb (Debian 16.3-1) 16.3
> [...]
> This GDB was configured as "i686-linux-gnu".
> [...]
> (gdb) run
> Starting program: /usr/bin/w
> [Thread debugging using libthread_db enabled]
> Using host libthread_db library "/lib/i386-linux-gnu/libthread_db.so.1".
> 23:21:56 up 4 min, 0 users, load average: 0.74, 1.06, 0.52
> USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT
>
> Program received signal SIGSEGV, Segmentation fault.
> Download failed: Invalid argument. Continuing without source file ./src/w.c.
> 0x00401979 in main (argc=<optimized out>, argv=<optimized out>) at src/w.c:1130
> warning: 1130 src/w.c: No such file or directory
>
> This reliably reproduces in the failing environment but not when run as root or
> on an amd64 host with kernel 6.12.27-1.
The proximate cause seems to be that sessions is undefined and that
sessions_list is then also used, undefined. This part of the bug is
therefore not architecture-specific even if the crash is not generally
reproduced yet.
I attach a patch that fixes the segfault to advance the discussion.
Personally I think this ought to be fixed for trixie.
However, we are unfortunately not out of the woods: elogind is running
on this host and root is able to see the sessions. So is 'who' as
non-root with the newly libsystemd-ised coreutils:
$ w
21:26:33 up 10 min, 0 users, load average: 0.00, 0.10, 0.12
USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT
Segmentation fault
$ debian/procps/usr/bin/w # with patch
21:26:42 up 11 min, 0 users, load average: 0.00, 0.10, 0.12
USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT
$ sudo w
Please touch the FIDO authenticator.
21:26:50 up 11 min, 1 user, load average: 0.64, 0.23, 0.16
USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT
ajb85 pts/0 - 21:26 0.00s 0.03s 0.12s sudo w
$ sudo debian/procps/usr/bin/w # with patch
21:26:54 up 11 min, 1 user, load average: 0.59, 0.23, 0.16
USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT
ajb85 pts/0 - 21:26 0.00s 0.02s 0.06s sudo debian/procps/usr/bin/w
$ who
ajb85 seat0 2025-07-23 21:17
ajb85 tty1 2025-07-23 21:17
This secondary issue could of course be an elogingd problem so I am
copying this message to the elogind package tracker for awareness.
Thanks!
-------------- next part --------------
A non-text attachment was scrubbed...
Name: init-sessions-var.patch
Type: text/x-diff
Size: 1586 bytes
Desc: not available
URL: <http://www.chiark.greenend.org.uk/pipermail/debian-init-diversity/attachments/20250723/1e2d310a/attachment.patch>
More information about the Debian-init-diversity
mailing list