aboutsummaryrefslogtreecommitdiff
path: root/plugins/runcmd.c
diff options
context:
space:
mode:
authorGravatar Sven Nierlein <sven@nierlein.de> 2019-04-25 13:03:10 +0200
committerGravatar Sven Nierlein <sven@nierlein.org> 2019-05-24 14:51:10 +0200
commite8325b39c47e6fbf7c8c1e31f9026870d9520af5 (patch)
tree1c55421a51808253cbe59348e45bd0cb580354c5 /plugins/runcmd.c
parent4131f2f268e7d771490ebeadbae50b4f95d69695 (diff)
downloadmonitoring-plugins-e8325b39c47e6fbf7c8c1e31f9026870d9520af5.tar.gz
fix maxfd being zero
If _SC_OPEN_MAX is available then maxfd was zero initialized and never set to the value from sysconf. This leads to segfaults with free(): invalid size introduced by commit 7cafb0e84550035fe671662c293122be975065ca. Signed-off-by: Sven Nierlein <sven@nierlein.de>
Diffstat (limited to 'plugins/runcmd.c')
-rw-r--r--plugins/runcmd.c10
1 files changed, 2 insertions, 8 deletions
diff --git a/plugins/runcmd.c b/plugins/runcmd.c
index c3828678..a7155d27 100644
--- a/plugins/runcmd.c
+++ b/plugins/runcmd.c
@@ -86,14 +86,8 @@ extern void die (int, const char *, ...)
* through this api and thus achieve async-safeness throughout the api */
void np_runcmd_init(void)
{
-#ifndef maxfd
- if(!maxfd && (maxfd = sysconf(_SC_OPEN_MAX)) < 0) {
- /* possibly log or emit a warning here, since there's no
- * guarantee that our guess at maxfd will be adequate */
- maxfd = 256;
- }
-#endif
-
+ if(maxfd == 0)
+ maxfd = open_max();
if(!np_pids) np_pids = calloc(maxfd, sizeof(pid_t));
}