/mandos/trunk

To get this branch, use:
bzr branch http://bzr.recompile.se/loggerhead/mandos/trunk

« back to all changes in this revision

Viewing changes to mandos

  • Committer: Teddy Hogeborn
  • Date: 2024-11-17 16:53:00 UTC
  • Revision ID: teddy@recompile.se-20241117165300-02hxm96s8cj9528e
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.

Show diffs side-by-side

added added

removed removed

Lines of Context:
3096
3096
        # Later, stdin will, and stdout and stderr might, be dup'ed
3097
3097
        # over with an opened os.devnull.  But we don't want this to
3098
3098
        # happen with a supplied network socket.
3099
 
        if 0 <= server_settings["socket"] <= 2:
 
3099
        while 0 <= server_settings["socket"] <= 2:
3100
3100
            server_settings["socket"] = os.dup(server_settings
3101
3101
                                               ["socket"])
3102
3102
    del server_config