Hello all,
there is a grave error in Inetd!
Suppose the system has an address 10.0.0.1 configured.
Using fixed, multiple nodes, the software breaks:
# /tmp/inetd.conf
10.0.0.1,127.0.0.1:
7890 stream tcp nowait nobody /bin/date date
Start Inetd:
$ sudo ./src/inetd -d /tmp/inetd.conf
The debugging seems acceptable on GNU/Linux, but take
a look at the logging:
$ tail /var/log/daemon
OpenBSD is better here because it traps the error almost
every time in this case, but still there is randomness
involved. Sometimes segmentation fault, other times double
free errors, but at various locations.
On GNU/Linux you will find that a nonsensical user name
is reported as non-existent!
To judge from these observations, the handling of `global_serv_node',
`serv_node' in next_node_sep() and getconfigent() is severly messed up.
I have been staring at this for parts of two days now, but I have not
yet found the weak spot. The double free error is the best clue I have
found so far. This error happens with a freshly cloned source tree,
so it does not interfere with other defects in Inetd that I am presently
addressing.
Best regards for now,
Mats