[monitoring-plugins] Fix for unclosed filehandle in pst3 on Solaris
Jan Wagner
git at monitoring-plugins.org
Tue Oct 13 12:00:11 CEST 2015
Module: monitoring-plugins
Branch: maint-2.1
Commit: c097642e52072e84287e9a6aea894585f32387ff
Author: abrist <abrist at nagios.com>
Committer: Jan Wagner <waja at cyconet.org>
Date: Tue Jul 28 15:20:38 2015 -0400
URL: https://www.monitoring-plugins.org/repositories/monitoring-plugins/commit/?id=c097642
Fix for unclosed filehandle in pst3 on Solaris
On Solaris, check_procs uses pst3 instead of /bin/ps (see
http://monitoring-plugins.org/doc/faq/ps-on-solaris.html for background). There's
a small bug in pst3 which causes it to NOT report some processes that are at
the end of the process table, at least on very busy systems (we noticed this
on a CoolThreads T5240 with load averages up to 90).
The bug is that a filehandle is not properly closed.
Thanks to jwinkle01 for finding and patching the bug.
(Closes #1203)
---
plugins-root/pst3.c | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/plugins-root/pst3.c b/plugins-root/pst3.c
index ee9d108..c3589f0 100644
--- a/plugins-root/pst3.c
+++ b/plugins-root/pst3.c
@@ -139,8 +139,10 @@ try_again:
if((ps_fd = open(ps_name, O_RDONLY)) == -1)
continue;
- if((as_fd = open(as_name, O_RDONLY)) == -1)
+ if((as_fd = open(as_name, O_RDONLY)) == -1) {
+ close(ps_fd);
continue;
+ }
if(read(ps_fd, &psinfo, sizeof(psinfo)) != sizeof(psinfo)) {
int err = errno;
More information about the Commits
mailing list