/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: 2014-06-14 23:43:07 UTC
  • Revision ID: teddy@recompile.se-20140614234307-i0mh9r2n4orkqtki
plugin-runner: Release memory and close FD's correctly in all cases.

* plugins.d/mandos-client.c (main): Init "direntries" to NULL.  Close
                                    "dir_fd" at fallback label.  Do
                                    not free "direntries" if
                                    scandirat() or scandir() failed.
                                    Do free(direntries) at fallback
                                    label.

Show diffs side-by-side

added added

removed removed

Lines of Context:
88
88
    except ImportError:
89
89
        SO_BINDTODEVICE = None
90
90
 
91
 
version = "1.6.3"
 
91
version = "1.6.5"
92
92
stored_state_file = "clients.pickle"
93
93
 
94
94
logger = logging.getLogger()
95
 
syslogger = (logging.handlers.SysLogHandler
96
 
             (facility = logging.handlers.SysLogHandler.LOG_DAEMON,
97
 
              address = str("/dev/log")))
 
95
syslogger = None
98
96
 
99
97
try:
100
98
    if_nametoindex = (ctypes.cdll.LoadLibrary
116
114
def initlogger(debug, level=logging.WARNING):
117
115
    """init logger and add loglevel"""
118
116
    
 
117
    global syslogger
 
118
    syslogger = (logging.handlers.SysLogHandler
 
119
                 (facility =
 
120
                  logging.handlers.SysLogHandler.LOG_DAEMON,
 
121
                  address = str("/dev/log")))
119
122
    syslogger.setFormatter(logging.Formatter
120
123
                           ('Mandos [%(process)d]: %(levelname)s:'
121
124
                            ' %(message)s'))
1350
1353
                                       *args, **kwargs)
1351
1354
    
1352
1355
    def start_checker(self, *args, **kwargs):
1353
 
        old_checker = self.checker
1354
 
        if self.checker is not None:
1355
 
            old_checker_pid = self.checker.pid
1356
 
        else:
1357
 
            old_checker_pid = None
 
1356
        old_checker_pid = getattr(self.checker, "pid", None)
1358
1357
        r = Client.start_checker(self, *args, **kwargs)
1359
1358
        # Only if new checker process was started
1360
1359
        if (self.checker is not None
2343
2342
    
2344
2343
    if options.check:
2345
2344
        import doctest
2346
 
        doctest.testmod()
2347
 
        sys.exit()
 
2345
        fail_count, test_count = doctest.testmod()
 
2346
        sys.exit(os.EX_OK if fail_count == 0 else 1)
2348
2347
    
2349
2348
    # Default values for config file for server-global settings
2350
2349
    server_defaults = { "interface": "",