On Sun, Jan 01, 2017 at 08:43:49AM -0700, Todd C. Miller wrote: > Now that syslogd supports multiple network sockets, does it still > make sense to die if one of them cannot be bound? It seems like > syslogd should still run as long as there is at least one address > it can bind to. > > What do you think?
I have never changed syslogd's behavior in case of an error. It is more or less how it always was. Especially the "if (!Debug) die(0);" looks strange to me. Regular programs should die as early as possible when an error occurs, then it can be fixed. But syslogd is special. If it dies, you become blind and don't see any errors at all. An attacker could exploit this. So I think syslogd should exit during startup e.g. if an invalid option was specified. But then it should just log errors and run as many subsystems as possible. So yes, a missing address should not be fatal. But there is more to do. For each error it should be considered wether err() or die() or logerror() is called. This is quite on top on my TODO list. bluhm
