/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:
143
143
if sys.version_info < (3, 2):
144
144
    configparser.Configparser = configparser.SafeConfigParser
145
145
 
146
 
version = "1.8.16"
 
146
version = "1.8.17"
147
147
stored_state_file = "clients.pickle"
148
148
 
149
149
log = logging.getLogger(os.path.basename(sys.argv[0]))
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
3243
3243
    # From the Avahi example code
3244
3244
    DBusGMainLoop(set_as_default=True)
3245
3245
    main_loop = GLib.MainLoop()
3246
 
    bus = dbus.SystemBus()
 
3246
    if use_dbus or zeroconf:
 
3247
        bus = dbus.SystemBus()
3247
3248
    # End of Avahi example code
3248
3249
    if use_dbus:
3249
3250
        try: