From b8a64210bd44d792de6defcdddec65231c1ac65b Mon Sep 17 00:00:00 2001 From: Thomas Guyot-Sionnest Date: Wed, 5 Aug 2009 03:12:05 -0400 Subject: [PATCH] Fix segfault in check_snmp (definitive fix is still in the works - see bug #2832451) --- plugins/check_snmp.c | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/plugins/check_snmp.c b/plugins/check_snmp.c index bb3d295..db16462 100644 --- a/plugins/check_snmp.c +++ b/plugins/check_snmp.c @@ -186,7 +186,7 @@ main (int argc, char **argv) }else{ snmpcmd = strdup (PATH_TO_SNMPGET); } - + /* 9 arguments to pass before authpriv options + 1 for host and numoids. Add one for terminating NULL */ command_line = calloc (9 + numauthpriv + 1 + numoids + 1, sizeof (char *)); command_line[0] = snmpcmd; @@ -255,15 +255,17 @@ main (int argc, char **argv) ptr = chld_out.line[i]; oidname = strpcpy (oidname, ptr, delimiter); response = strstr (ptr, delimiter); + if (response == NULL) + break; + if (verbose > 2) { printf("Processing line %i\n oidname: %s\n response: %s\n", i+1, oidname, response); } - /* We strip out the datatype indicator for PHBs */ - /* Clean up type array - Sol10 does not necessarily zero it out */ bzero(type, sizeof(type)); + /* We strip out the datatype indicator for PHBs */ if (strstr (response, "Gauge: ")) show = strstr (response, "Gauge: ") + 7; else if (strstr (response, "Gauge32: ")) -- 2.30.2