From b8734ae8526e55e2fcf513123c8da70aaaf0deda Mon Sep 17 00:00:00 2001 From: Ad Schellevis Date: Thu, 15 Feb 2024 13:34:06 +0100 Subject: [PATCH] Services: Unbound DNS - dnsbl_module.py - prevent os.write() on None when another thread closed the pipe (self._pipe_fd) --- .../service/templates/OPNsense/Unbound/core/dnsbl_module.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/opnsense/service/templates/OPNsense/Unbound/core/dnsbl_module.py b/src/opnsense/service/templates/OPNsense/Unbound/core/dnsbl_module.py index 6b1abac3c..3ffd92e7d 100644 --- a/src/opnsense/service/templates/OPNsense/Unbound/core/dnsbl_module.py +++ b/src/opnsense/service/templates/OPNsense/Unbound/core/dnsbl_module.py @@ -225,7 +225,7 @@ class Logger: l = self._pipe_buffer.popleft() res = "{}|{}|{}|{}|{}|{}|{}|{}|{}|{}|{}|{}|{}\n".format(*['' if x is None else x for x in l]) os.write(self._pipe_fd, res.encode()) - except (BrokenPipeError, BlockingIOError) as e: + except (BrokenPipeError, BlockingIOError, TypeError) as e: if e.__class__.__name__ == 'BrokenPipeError': log_info("dnsbl_module: Logging backend closed connection. Closing pipe and continuing.") os.close(self._pipe_fd)