[Touch-packages] [Bug 1814905] Re: dash exits when receiving wall message
[Expired for dash (Ubuntu) because there has been no activity for 60 days.] ** Changed in: dash (Ubuntu) Status: Incomplete => Expired -- You received this bug notification because you are a member of Ubuntu Touch seeded packages, which is subscribed to dash in Ubuntu. https://bugs.launchpad.net/bugs/1814905 Title: dash exits when receiving wall message Status in dash package in Ubuntu: Expired Bug description: When using "/bin/sh" (dash) as a shell for ssh, or just starting /bin/sh in a terminal, when the shell receives a wall message (from another user or root), it just quits. How to reproduce: - start a terminal (xterm, gnome-terminal, etc), usually starts with bash - from bash run 'sh' command to open a dash shell - start another terminal, and run: echo "foo" | wall - the broadcast message appears on both terminals - in the first terminal you are thrown back to bash, because dash exits I've tried this on Ubuntu 14.04, 16.04, 18.04 (64bits) latest updates and it's happening on all of them. I've also tried with latest dash from git, compiled on Ubuntu 16.04, same problem, that's why I don't think it's dash's problem. Also tried on CentOS 7, there is no problem there. The problem appears this morning (6 February) after updating to latest version of 16.04, 18.04. I also have a box with 16.04 but not the latest updates, and on that box the problem does not happen. If one uses dash as a login shell, and enters on a remote box with SSH for example, the connection can be terminated by another user simply wall'ing a broadcast message (or a system daemon like NUT). This could be taken as a potential security issue. To manage notifications about this bug go to: https://bugs.launchpad.net/ubuntu/+source/dash/+bug/1814905/+subscriptions -- Mailing list: https://launchpad.net/~touch-packages Post to : touch-packages@lists.launchpad.net Unsubscribe : https://launchpad.net/~touch-packages More help : https://help.launchpad.net/ListHelp
[Touch-packages] [Bug 1814905] Re: dash exits when receiving wall message
Here's a quick demonstration with Ubuntu 18.10 desktop, fresh install in a VirtualBox VM, up-to-date https://youtu.be/-VSj_ZZjv3w (1min screen capture) with and without strace. I've also attached a perf trace output. I've started /bin/sh as root like this: perf trace -o /tmp/dash-perf-trace.txt /bin/sh Pressed a couple of enters, did an echo, and then a "wall foo" from another terminal, as normal user. I'm not saying it's dash's fault, I just didn't know where to open the ticket. Please let me know if you need anything else. Thanks! ** Attachment added: "dash-perf-trace.txt" https://bugs.launchpad.net/ubuntu/+source/dash/+bug/1814905/+attachment/5236686/+files/dash-perf-trace.txt -- You received this bug notification because you are a member of Ubuntu Touch seeded packages, which is subscribed to dash in Ubuntu. https://bugs.launchpad.net/bugs/1814905 Title: dash exits when receiving wall message Status in dash package in Ubuntu: Incomplete Bug description: When using "/bin/sh" (dash) as a shell for ssh, or just starting /bin/sh in a terminal, when the shell receives a wall message (from another user or root), it just quits. How to reproduce: - start a terminal (xterm, gnome-terminal, etc), usually starts with bash - from bash run 'sh' command to open a dash shell - start another terminal, and run: echo "foo" | wall - the broadcast message appears on both terminals - in the first terminal you are thrown back to bash, because dash exits I've tried this on Ubuntu 14.04, 16.04, 18.04 (64bits) latest updates and it's happening on all of them. I've also tried with latest dash from git, compiled on Ubuntu 16.04, same problem, that's why I don't think it's dash's problem. Also tried on CentOS 7, there is no problem there. The problem appears this morning (6 February) after updating to latest version of 16.04, 18.04. I also have a box with 16.04 but not the latest updates, and on that box the problem does not happen. If one uses dash as a login shell, and enters on a remote box with SSH for example, the connection can be terminated by another user simply wall'ing a broadcast message (or a system daemon like NUT). This could be taken as a potential security issue. To manage notifications about this bug go to: https://bugs.launchpad.net/ubuntu/+source/dash/+bug/1814905/+subscriptions -- Mailing list: https://launchpad.net/~touch-packages Post to : touch-packages@lists.launchpad.net Unsubscribe : https://launchpad.net/~touch-packages More help : https://help.launchpad.net/ListHelp
[Touch-packages] [Bug 1814905] Re: dash exits when receiving wall message
Hello Imre, thanks for the report. I can't reproduce this issue myself, nor could I find anything in the source code that would suggest dash would try to quit. In fact I'm not even sure that dash knows that it's happened. Here's the tail end of strace output (run on the same terminal as dash, to force intermingling of syscall output and terminal output), showing dash handling a write(1) without trouble, and checking for completed jobs after I hit enter several times: geteuid() = 1000 getegid() = 1000 rt_sigaction(SIGINT, NULL, {sa_handler=SIG_DFL, sa_mask=[], sa_flags=0}, 8) = 0 rt_sigaction(SIGINT, {sa_handler=0x55a82089e200, sa_mask=~[RTMIN RT_1], sa_flags=SA_RESTORER, sa_restorer=0x7fd3be19df20}, NULL, 8) = 0 rt_sigaction(SIGQUIT, NULL, {sa_handler=SIG_DFL, sa_mask=[], sa_flags=0}, 8) = 0 rt_sigaction(SIGQUIT, {sa_handler=SIG_IGN, sa_mask=~[RTMIN RT_1], sa_flags=SA_RESTORER, sa_restorer=0x7fd3be19df20}, NULL, 8) = 0 rt_sigaction(SIGTERM, NULL, {sa_handler=SIG_DFL, sa_mask=[], sa_flags=0}, 8) = 0 rt_sigaction(SIGTERM, {sa_handler=SIG_IGN, sa_mask=~[RTMIN RT_1], sa_flags=SA_RESTORER, sa_restorer=0x7fd3be19df20}, NULL, 8) = 0 openat(AT_FDCWD, "/dev/tty", O_RDWR)= 3 fcntl(3, F_DUPFD, 10) = 10 close(3)= 0 fcntl(10, F_SETFD, FD_CLOEXEC) = 0 ioctl(10, TIOCGPGRP, [23306]) = 0 getpgrp() = 23306 rt_sigaction(SIGTSTP, NULL, {sa_handler=SIG_DFL, sa_mask=[], sa_flags=0}, 8) = 0 rt_sigaction(SIGTSTP, {sa_handler=SIG_IGN, sa_mask=~[RTMIN RT_1], sa_flags=SA_RESTORER, sa_restorer=0x7fd3be19df20}, NULL, 8) = 0 rt_sigaction(SIGTTOU, NULL, {sa_handler=SIG_DFL, sa_mask=[], sa_flags=0}, 8) = 0 rt_sigaction(SIGTTOU, {sa_handler=SIG_IGN, sa_mask=~[RTMIN RT_1], sa_flags=SA_RESTORER, sa_restorer=0x7fd3be19df20}, NULL, 8) = 0 rt_sigaction(SIGTTIN, NULL, {sa_handler=SIG_DFL, sa_mask=[], sa_flags=0}, 8) = 0 rt_sigaction(SIGTTIN, {sa_handler=SIG_DFL, sa_mask=~[RTMIN RT_1], sa_flags=SA_RESTORER, sa_restorer=0x7fd3be19df20}, NULL, 8) = 0 setpgid(0, 23308) = 0 ioctl(10, TIOCSPGRP, [23308]) = 0 wait4(-1, 0x7ffcdf89717c, WNOHANG|WSTOPPED, NULL) = -1 ECHILD (No child processes) write(2, "$ ", 2$ ) = 2 read(0, Message from sarnold@hunt on pts/13 at 17:41 ... hello EOF "\n", 8192) = 1 wait4(-1, 0x7ffcdf89717c, WNOHANG|WSTOPPED, NULL) = -1 ECHILD (No child processes) write(2, "$ ", 2$ ) = 2 read(0, "\n", 8192) = 1 wait4(-1, 0x7ffcdf89717c, WNOHANG|WSTOPPED, NULL) = -1 ECHILD (No child processes) write(2, "$ ", 2$ ) = 2 read(0, ^C0x55a820aa9a60, 8192) = ? ERESTARTSYS (To be restarted if SA_RESTART is set) --- SIGINT {si_signo=SIGINT, si_code=SI_KERNEL} --- rt_sigprocmask(SIG_SETMASK, [], ~[KILL STOP RTMIN RT_1], 8) = 0 write(2, "\n", 1 ) = 1 wait4(-1, 0x7ffcdf89717c, WNOHANG|WSTOPPED, NULL) = -1 ECHILD (No child processes) write(2, "$ ", 2$ ) = 2 read(0, "", 8192) = 0 write(2, "\n", 1 ) = 1 ioctl(10, TIOCSPGRP, [23306]) = 0 setpgid(0, 23306) = 0 close(10) = 0 exit_group(0) = ? +++ exited with 0 +++ I tried both dash in a terminal (urxvt) and ssh -t sarnold@localhost /bin/dash -- both behaved identically. Could you try to reproduce this while you're attached to the shell with gdb or perhaps perf trace? Thanks ** Changed in: dash (Ubuntu) Status: New => Incomplete -- You received this bug notification because you are a member of Ubuntu Touch seeded packages, which is subscribed to dash in Ubuntu. https://bugs.launchpad.net/bugs/1814905 Title: dash exits when receiving wall message Status in dash package in Ubuntu: Incomplete Bug description: When using "/bin/sh" (dash) as a shell for ssh, or just starting /bin/sh in a terminal, when the shell receives a wall message (from another user or root), it just quits. How to reproduce: - start a terminal (xterm, gnome-terminal, etc), usually starts with bash - from bash run 'sh' command to open a dash shell - start another terminal, and run: echo "foo" | wall - the broadcast message appears on both terminals - in the first terminal you are thrown back to bash, because dash exits I've tried this on Ubuntu 14.04, 16.04, 18.04 (64bits) latest updates and it's happening on all of them. I've also tried with latest dash from git, compiled on Ubuntu 16.04, same problem, that's why I don't think it's dash's problem. Also tried on CentOS 7, there is no problem there. The problem appears this morning (6 February) after updating to latest version of 16.04, 18.04. I also have a box with 16.04 but not the latest updates, and on that box the problem does not
[Touch-packages] [Bug 1814905] Re: dash exits when receiving wall message
** Package changed: ubuntu => dash (Ubuntu) -- You received this bug notification because you are a member of Ubuntu Touch seeded packages, which is subscribed to dash in Ubuntu. https://bugs.launchpad.net/bugs/1814905 Title: dash exits when receiving wall message Status in dash package in Ubuntu: New Bug description: When using "/bin/sh" (dash) as a shell for ssh, or just starting /bin/sh in a terminal, when the shell receives a wall message (from another user or root), it just quits. How to reproduce: - start a terminal (xterm, gnome-terminal, etc), usually starts with bash - from bash run 'sh' command to open a dash shell - start another terminal, and run: echo "foo" | wall - the broadcast message appears on both terminals - in the first terminal you are thrown back to bash, because dash exits I've tried this on Ubuntu 14.04, 16.04, 18.04 (64bits) latest updates and it's happening on all of them. I've also tried with latest dash from git, compiled on Ubuntu 16.04, same problem, that's why I don't think it's dash's problem. Also tried on CentOS 7, there is no problem there. The problem appears this morning (6 February) after updating to latest version of 16.04, 18.04. I also have a box with 16.04 but not the latest updates, and on that box the problem does not happen. If one uses dash as a login shell, and enters on a remote box with SSH for example, the connection can be terminated by another user simply wall'ing a broadcast message (or a system daemon like NUT). This could be taken as a potential security issue. To manage notifications about this bug go to: https://bugs.launchpad.net/ubuntu/+source/dash/+bug/1814905/+subscriptions -- Mailing list: https://launchpad.net/~touch-packages Post to : touch-packages@lists.launchpad.net Unsubscribe : https://launchpad.net/~touch-packages More help : https://help.launchpad.net/ListHelp