From 7fe8ddfb24c79dc90e482b9b9e4e96c777b6df5b Mon Sep 17 00:00:00 2001 From: Tony Murray Date: Tue, 5 Oct 2021 02:27:21 -0500 Subject: [PATCH] don't leak stderr (#13332) nullable --- LibreNMS/Data/Store/Rrd.php | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/LibreNMS/Data/Store/Rrd.php b/LibreNMS/Data/Store/Rrd.php index 305b4aba66..8996a0aedc 100644 --- a/LibreNMS/Data/Store/Rrd.php +++ b/LibreNMS/Data/Store/Rrd.php @@ -666,11 +666,13 @@ class Rrd extends BaseDatastore * * @return string */ - public static function version(): string + public static function version(): ?string { - return str_replace('1.7.01.7.0', '1.7.0', implode(' ', array_slice(explode(' ', shell_exec( - Config::get('rrdtool', 'rrdtool') . ' --version | head -n1' - )), 1, 1))); + $proc = new Process([Config::get('rrdtool', 'rrdtool'), '--version']); + $proc->run(); + $parts = explode(' ', $proc->getOutput(), 3); + + return $proc->isSuccessful() && isset($parts[1]) ? str_replace('1.7.01.7.0', '1.7.0', $parts[1]) : null; } /**