diff --git a/ChangeLog b/ChangeLog index ea0c4a64..007e4ffc 100644 --- a/ChangeLog +++ b/ChangeLog @@ -32,6 +32,7 @@ ver. 0.10.6-dev (20??/??/??) - development edition IPv6-capable now. ### Fixes +* restoring a large number (500+ depending on files ulimit) of current bans when using PyPy fixed ### New Features diff --git a/fail2ban/server/utils.py b/fail2ban/server/utils.py index 2bde3f4d..053aa04f 100644 --- a/fail2ban/server/utils.py +++ b/fail2ban/server/utils.py @@ -260,7 +260,6 @@ class Utils(): if stdout is not None and stdout != '' and std_level >= logSys.getEffectiveLevel(): for l in stdout.splitlines(): logSys.log(std_level, "%x -- stdout: %r", realCmdId, uni_decode(l)) - popen.stdout.close() if popen.stderr: try: if retcode is None or retcode < 0: @@ -271,7 +270,9 @@ class Utils(): if stderr is not None and stderr != '' and std_level >= logSys.getEffectiveLevel(): for l in stderr.splitlines(): logSys.log(std_level, "%x -- stderr: %r", realCmdId, uni_decode(l)) - popen.stderr.close() + + if popen.stdout: popen.stdout.close() + if popen.stderr: popen.stderr.close() success = False if retcode in success_codes: