mandos: Avoid closing configured server network socket
If we are passed a pre-created created network socket as a file descriptor, we must avoid later closing it (when stdin, stdout and stderr are dup2()ed over with /dev/null) by making sure that the network file descriptor is not 0, 1, or 2, by creating a new file descriptor if necessary.
However, when we create a new file descriptor we must check that the new file descriptor is not 0, 1, or 2 either, and try again until we get a suitable file descriptor.
if ! dpkg-statoverride --list "/var/lib/mandos" >/dev/null \
64
2>&1; then
65
chown _mandos:_mandos /var/lib/mandos
66
chmod u=rwx,go= /var/lib/mandos
67
fi
68
69
if dpkg --compare-versions "$2" eq "1.8.0-1" \
70
|| dpkg --compare-versions "$2" eq "1.8.0-1~bpo9+1"; then
71
if grep --quiet --regexp='^[[:space:]]*key_id[[:space:]]*=[[:space:]]*[Ee]3[Bb]0[Cc]44298[Ff][Cc]1[Cc]149[Aa][Ff][Bb][Ff]4[Cc]8996[Ff][Bb]92427[Aa][Ee]41[Ee]4649[Bb]934[Cc][Aa]495991[Bb]7852[Bb]855[[:space:]]*$' /etc/mandos/clients.conf; then