From aeb6891c850f7a0804d980c44533fd448ea837f4 Mon Sep 17 00:00:00 2001 From: nicolargo Date: Sat, 17 Jun 2023 16:28:27 +0200 Subject: [PATCH] Improve secure.py --- glances/secure.py | 7 +++++-- unitest.py | 1 - 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/glances/secure.py b/glances/secure.py index 2eb671d8..4dd177e0 100644 --- a/glances/secure.py +++ b/glances/secure.py @@ -9,10 +9,11 @@ """Secures functions for Glances""" -from glances.globals import nativestr from subprocess import Popen, PIPE import re +from glances.globals import nativestr + def secure_popen(cmd): """A more or less secure way to execute system commands @@ -54,8 +55,10 @@ def __secure_popen(cmd): sub_cmd_split = [_[1:-1] if (_[0] == _[-1] == '"') or (_[0] == _[-1] == '\'') else _ for _ in tmp_split] p = Popen(sub_cmd_split, shell=False, stdin=sub_cmd_stdin, stdout=PIPE, stderr=PIPE) if p_last is not None: - p_last.wait() + # Allow p_last to receive a SIGPIPE if p exits. p_last.stdout.close() + p_last.kill() + p_last.wait() p_last = p sub_cmd_stdin = p.stdout diff --git a/unitest.py b/unitest.py index 206c850a..c51a658a 100755 --- a/unitest.py +++ b/unitest.py @@ -33,7 +33,6 @@ from glances.plugins.plugin.model import GlancesPluginModel from glances.programs import processes_to_programs from glances.secure import secure_popen - # Global variables # =================