diff --git a/lib/Core/SmfDisabled.pm b/lib/Core/SmfDisabled.pm index 7594c81dc419b82533eb497f2641113b5963ae2d..145878dc2660676b8775ab4adf25f509f90af79e 100644 --- a/lib/Core/SmfDisabled.pm +++ b/lib/Core/SmfDisabled.pm @@ -79,6 +79,12 @@ sub handler { }; my $svcs_output = run_command("$svcs_path -a"); my @lines = grep { $_ ne '' } split /\n/, $svcs_output; + + # svcs/smf is broken + if ($? && ! @lines) { + return {}; + } + for my $line (@lines) { my ($state, $start, $name) = split /\s+/, $line, 3; if ($name =~ $pattern) { diff --git a/lib/Core/SmfMaintenance.pm b/lib/Core/SmfMaintenance.pm index d2af6cbc03a279eb66847de00274daa2ed85c58b..e2c6f2e62aae5205d44d2f3631c7c52e3865fd50 100644 --- a/lib/Core/SmfMaintenance.pm +++ b/lib/Core/SmfMaintenance.pm @@ -71,6 +71,10 @@ sub handler { my @maintenance_services = map((split(/\s+/, $_))[2], grep(/^maintenance/, split(/\n/, $output))); + # svcs/smf is broken + if ($? && ! @maintenance_services) { + return {}; + } return { "count" => [scalar(@maintenance_services), "i"],