Hi list,
I think I have found a bug in the handling of additional domain sockets
(-a option) in sysklogd. Starting in line 1138 of syslogd.c, the domain
sockets are read. If a socket is ready, variable "i" is used to store
the bytes received. However, the very same "i" is also used to iterate
through the select FDSET. So when the processing of the read message is
done, i has an invalid value and the loop can not continue correctly.
The solution is to replace "i" by a different variable in the inner part
of the loop.
As of my understanding, the bug is minor. It has no other effect than
potentially postponing a socket read until the next select cycle. In
theory, on an extremely busy system, this could lead to a socket being
totally ignored - but this is a very unlikely scenario.
I hope this report is helpful.
Rainer Gerhards
Received on Thu, 06 Oct 2005 15:14:21 +0200
This archive was generated by hypermail 2.1.8 : Thu Oct 06 2005 - 15:14:30 CEST