diff options
author | Thomas Guyot-Sionnest <dermoth@aei.ca> | 2009-03-18 03:47:23 -0400 |
---|---|---|
committer | Thomas Guyot-Sionnest <dermoth@aei.ca> | 2009-03-18 03:47:23 -0400 |
commit | e9f5442bb3ad6f6070c12f48ec5e3c0f43e26d9a (patch) | |
tree | 27333a8bade35f0e0cf6ea45acf6b9c9be1d43d4 | |
parent | d5ea0d19fae57dc1c54b4429def2bb35cd94414f (diff) | |
download | monitoring-plugins-e9f5442bb3ad6f6070c12f48ec5e3c0f43e26d9a.tar.gz |
check_snmp: Fix potential buffer overflow - enforce MAX_OIDS limit (John A. Barbuto)
-rw-r--r-- | plugins/check_snmp.c | 3 |
1 files changed, 1 insertions, 2 deletions
diff --git a/plugins/check_snmp.c b/plugins/check_snmp.c index 3dc52dff..41a5ea1a 100644 --- a/plugins/check_snmp.c +++ b/plugins/check_snmp.c | |||
@@ -527,9 +527,8 @@ process_arguments (int argc, char **argv) | |||
527 | needmibs = TRUE; | 527 | needmibs = TRUE; |
528 | } | 528 | } |
529 | oids = calloc(MAX_OIDS, sizeof (char *)); | 529 | oids = calloc(MAX_OIDS, sizeof (char *)); |
530 | for (ptr = strtok(optarg, ", "); ptr != NULL; ptr = strtok(NULL, ", ")) { | 530 | for (ptr = strtok(optarg, ", "); ptr != NULL && j < MAX_OIDS; ptr = strtok(NULL, ", "), j++) { |
531 | oids[j] = strdup(ptr); | 531 | oids[j] = strdup(ptr); |
532 | j++; | ||
533 | } | 532 | } |
534 | numoids = j; | 533 | numoids = j; |
535 | if (c == 'E' || c == 'e') { | 534 | if (c == 'E' || c == 'e') { |