diff options
-rw-r--r-- | plugins/check_snmp.c | 22 |
1 files changed, 11 insertions, 11 deletions
diff --git a/plugins/check_snmp.c b/plugins/check_snmp.c index 8a8ee180..7c5d0ec5 100644 --- a/plugins/check_snmp.c +++ b/plugins/check_snmp.c @@ -200,8 +200,8 @@ main (int argc, char **argv) bindtextdomain (PACKAGE, LOCALEDIR); textdomain (PACKAGE); - labels = malloc (labels_size); - unitv = malloc (unitv_size); + labels = malloc (labels_size * sizeof(*labels)); + unitv = malloc (unitv_size * sizeof(*unitv)); for (i = 0; i < MAX_OIDS; i++) eval_method[i] = CHECK_UNDEF; @@ -768,9 +768,9 @@ process_arguments (int argc, char **argv) break; case 'l': /* label */ nlabels++; - if (nlabels >= labels_size) { + if (nlabels > labels_size) { labels_size += 8; - labels = realloc (labels, labels_size); + labels = realloc (labels, labels_size * sizeof(*labels)); if (labels == NULL) die (STATE_UNKNOWN, _("Could not reallocate labels[%d]"), (int)nlabels); } @@ -780,13 +780,13 @@ process_arguments (int argc, char **argv) if (ptr[0] == '\'') labels[nlabels - 1] = ptr + 1; while (ptr && (ptr = nextarg (ptr))) { - if (nlabels >= labels_size) { + nlabels++; + if (nlabels > labels_size) { labels_size += 8; - labels = realloc (labels, labels_size); + labels = realloc (labels, labels_size * sizeof(*labels)); if (labels == NULL) die (STATE_UNKNOWN, _("Could not reallocate labels\n")); } - nlabels++; ptr = thisarg (ptr); if (ptr[0] == '\'') labels[nlabels - 1] = ptr + 1; @@ -797,9 +797,9 @@ process_arguments (int argc, char **argv) case 'u': /* units */ units = optarg; nunits++; - if (nunits >= unitv_size) { + if (nunits > unitv_size) { unitv_size += 8; - unitv = realloc (unitv, unitv_size); + unitv = realloc (unitv, unitv_size * sizeof(*unitv)); if (unitv == NULL) die (STATE_UNKNOWN, _("Could not reallocate units [%d]\n"), (int)nunits); } @@ -809,9 +809,9 @@ process_arguments (int argc, char **argv) if (ptr[0] == '\'') unitv[nunits - 1] = ptr + 1; while (ptr && (ptr = nextarg (ptr))) { - if (nunits >= unitv_size) { + if (nunits > unitv_size) { unitv_size += 8; - unitv = realloc (unitv, unitv_size); + unitv = realloc (unitv, unitv_size * sizeof(*unitv)); if (units == NULL) die (STATE_UNKNOWN, _("Could not realloc() units\n")); } |