• Eric Wong's avatar
    Fix endless loop when mpd is launched from a non-interactive shell. · bbe8b0ef
    Eric Wong authored
    Thanks to _noth_ for the patch, this fixes Mantis bug #1534
    
    _noth_ wrote:
    > When MPD is launched from a non-interactive shell, it enters an endless
    > loop, filling up its error log file with "error accept()'ing" messages.
    > This is caused by the fact that stdin is already closed when mpd starts
    > up.  listenOnPort() opens up the first of its sockets as fd 0 (the first
    > empty fd table position). Then, setup_log_output()->redirect_stdin()
    > overwrites fd0 (fd=open("/dev/null",...); dup2(fd, STDIN_FILENO);)
    > without checking if it corresponds to the actual standard input (or if
    > it is open in the first place).  This means that listenSockets[0].fd now
    > is a fd for /dev/null, thus doIOForInterfaces()->getConnections() can't
    > accept(2) on it and fails with the above error. The attached patch fixes
    > this for me.
    
    git-svn-id: https://svn.musicpd.org/mpd/trunk@6843 09075e82-0dd4-0310-85a5-a0d7c8717e4f
    bbe8b0ef
Name
Last commit
Last update
doc Loading commit data...
m4 Loading commit data...
scripts Loading commit data...
src Loading commit data...
AUTHORS Loading commit data...
COPYING Loading commit data...
ChangeLog Loading commit data...
INSTALL Loading commit data...
Makefile.am Loading commit data...
README Loading commit data...
TODO Loading commit data...
UPGRADING Loading commit data...
autogen.sh Loading commit data...
configure.ac Loading commit data...