From: Thomas Guyot-Sionnest Date: Wed, 5 Aug 2009 07:12:05 +0000 (-0400) Subject: Fix segfault in check_snmp (definitive fix is still in the works - see bug #2832451) X-Git-Url: https://git.tokkee.org/?a=commitdiff_plain;h=b8a64210bd44d792de6defcdddec65231c1ac65b;p=nagiosplug.git Fix segfault in check_snmp (definitive fix is still in the works - see bug #2832451) --- 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: "))