diff options
author | Anders Kaseorg <andersk@mit.edu> | 2012-06-29 04:57:48 (GMT) |
---|---|---|
committer | Holger Weiss <holger@zedat.fu-berlin.de> | 2012-06-29 11:39:11 (GMT) |
commit | 028d50d6f99e647a325a0a68303016382c4bbdc9 (patch) | |
tree | 1d9a14635602169d137409becfa108cd6bdb371c /plugins/check_snmp.c | |
parent | 9976876584e5a1df6e1c9315212c3d274df7a12e (diff) | |
download | monitoring-plugins-028d50d6f99e647a325a0a68303016382c4bbdc9.tar.gz |
Die when asprintf fails
Fixes many instances of
warning: ignoring return value of 'asprintf', declared with attribute warn_unused_result [-Wunused-result]
Signed-off-by: Anders Kaseorg <andersk@mit.edu>
Diffstat (limited to 'plugins/check_snmp.c')
-rw-r--r-- | plugins/check_snmp.c | 34 |
1 files changed, 17 insertions, 17 deletions
diff --git a/plugins/check_snmp.c b/plugins/check_snmp.c index a5a88d2..2d9861b 100644 --- a/plugins/check_snmp.c +++ b/plugins/check_snmp.c | |||
@@ -255,9 +255,9 @@ main (int argc, char **argv) | |||
255 | command_line = calloc (9 + numauthpriv + 1 + numoids + 1, sizeof (char *)); | 255 | command_line = calloc (9 + numauthpriv + 1 + numoids + 1, sizeof (char *)); |
256 | command_line[0] = snmpcmd; | 256 | command_line[0] = snmpcmd; |
257 | command_line[1] = strdup ("-t"); | 257 | command_line[1] = strdup ("-t"); |
258 | asprintf (&command_line[2], "%d", timeout_interval); | 258 | xasprintf (&command_line[2], "%d", timeout_interval); |
259 | command_line[3] = strdup ("-r"); | 259 | command_line[3] = strdup ("-r"); |
260 | asprintf (&command_line[4], "%d", retries); | 260 | xasprintf (&command_line[4], "%d", retries); |
261 | command_line[5] = strdup ("-m"); | 261 | command_line[5] = strdup ("-m"); |
262 | command_line[6] = strdup (miblist); | 262 | command_line[6] = strdup (miblist); |
263 | command_line[7] = "-v"; | 263 | command_line[7] = "-v"; |
@@ -267,16 +267,16 @@ main (int argc, char **argv) | |||
267 | command_line[9 + i] = authpriv[i]; | 267 | command_line[9 + i] = authpriv[i]; |
268 | } | 268 | } |
269 | 269 | ||
270 | asprintf (&command_line[9 + numauthpriv], "%s:%s", server_address, port); | 270 | xasprintf (&command_line[9 + numauthpriv], "%s:%s", server_address, port); |
271 | 271 | ||
272 | /* This is just for display purposes, so it can remain a string */ | 272 | /* This is just for display purposes, so it can remain a string */ |
273 | asprintf(&cl_hidden_auth, "%s -t %d -r %d -m %s -v %s %s %s:%s", | 273 | xasprintf(&cl_hidden_auth, "%s -t %d -r %d -m %s -v %s %s %s:%s", |
274 | snmpcmd, timeout_interval, retries, strlen(miblist) ? miblist : "''", proto, "[authpriv]", | 274 | snmpcmd, timeout_interval, retries, strlen(miblist) ? miblist : "''", proto, "[authpriv]", |
275 | server_address, port); | 275 | server_address, port); |
276 | 276 | ||
277 | for (i = 0; i < numoids; i++) { | 277 | for (i = 0; i < numoids; i++) { |
278 | command_line[9 + numauthpriv + 1 + i] = oids[i]; | 278 | command_line[9 + numauthpriv + 1 + i] = oids[i]; |
279 | asprintf(&cl_hidden_auth, "%s %s", cl_hidden_auth, oids[i]); | 279 | xasprintf(&cl_hidden_auth, "%s %s", cl_hidden_auth, oids[i]); |
280 | } | 280 | } |
281 | 281 | ||
282 | command_line[9 + numauthpriv + 1 + numoids] = NULL; | 282 | command_line[9 + numauthpriv + 1 + numoids] = NULL; |
@@ -371,14 +371,14 @@ main (int argc, char **argv) | |||
371 | if (dq_count) { /* unfinished line */ | 371 | if (dq_count) { /* unfinished line */ |
372 | /* copy show verbatim first */ | 372 | /* copy show verbatim first */ |
373 | if (!mult_resp) mult_resp = strdup(""); | 373 | if (!mult_resp) mult_resp = strdup(""); |
374 | asprintf (&mult_resp, "%s%s:\n%s\n", mult_resp, oids[i], show); | 374 | xasprintf (&mult_resp, "%s%s:\n%s\n", mult_resp, oids[i], show); |
375 | /* then strip out unmatched double-quote from single-line output */ | 375 | /* then strip out unmatched double-quote from single-line output */ |
376 | if (show[0] == '"') show++; | 376 | if (show[0] == '"') show++; |
377 | 377 | ||
378 | /* Keep reading until we match end of double-quoted string */ | 378 | /* Keep reading until we match end of double-quoted string */ |
379 | for (line++; line < chld_out.lines; line++) { | 379 | for (line++; line < chld_out.lines; line++) { |
380 | ptr = chld_out.line[line]; | 380 | ptr = chld_out.line[line]; |
381 | asprintf (&mult_resp, "%s%s\n", mult_resp, ptr); | 381 | xasprintf (&mult_resp, "%s%s\n", mult_resp, ptr); |
382 | 382 | ||
383 | COUNT_SEQ(ptr, bk_count, dq_count) | 383 | COUNT_SEQ(ptr, bk_count, dq_count) |
384 | while (dq_count && ptr[0] != '\n' && ptr[0] != '\0') { | 384 | while (dq_count && ptr[0] != '\n' && ptr[0] != '\0') { |
@@ -424,11 +424,11 @@ main (int argc, char **argv) | |||
424 | /* Convert to per second, then use multiplier */ | 424 | /* Convert to per second, then use multiplier */ |
425 | temp_double = temp_double/duration*rate_multiplier; | 425 | temp_double = temp_double/duration*rate_multiplier; |
426 | iresult = get_status(temp_double, thlds[i]); | 426 | iresult = get_status(temp_double, thlds[i]); |
427 | asprintf (&show, conv, temp_double); | 427 | xasprintf (&show, conv, temp_double); |
428 | } | 428 | } |
429 | } else { | 429 | } else { |
430 | iresult = get_status(response_value[i], thlds[i]); | 430 | iresult = get_status(response_value[i], thlds[i]); |
431 | asprintf (&show, conv, response_value[i]); | 431 | xasprintf (&show, conv, response_value[i]); |
432 | } | 432 | } |
433 | } | 433 | } |
434 | 434 | ||
@@ -472,16 +472,16 @@ main (int argc, char **argv) | |||
472 | 472 | ||
473 | /* Prepend a label for this OID if there is one */ | 473 | /* Prepend a label for this OID if there is one */ |
474 | if (nlabels >= (size_t)1 && (size_t)i < nlabels && labels[i] != NULL) | 474 | if (nlabels >= (size_t)1 && (size_t)i < nlabels && labels[i] != NULL) |
475 | asprintf (&outbuff, "%s%s%s %s%s%s", outbuff, | 475 | xasprintf (&outbuff, "%s%s%s %s%s%s", outbuff, |
476 | (i == 0) ? " " : output_delim, | 476 | (i == 0) ? " " : output_delim, |
477 | labels[i], mark (iresult), show, mark (iresult)); | 477 | labels[i], mark (iresult), show, mark (iresult)); |
478 | else | 478 | else |
479 | asprintf (&outbuff, "%s%s%s%s%s", outbuff, (i == 0) ? " " : output_delim, | 479 | xasprintf (&outbuff, "%s%s%s%s%s", outbuff, (i == 0) ? " " : output_delim, |
480 | mark (iresult), show, mark (iresult)); | 480 | mark (iresult), show, mark (iresult)); |
481 | 481 | ||
482 | /* Append a unit string for this OID if there is one */ | 482 | /* Append a unit string for this OID if there is one */ |
483 | if (nunits > (size_t)0 && (size_t)i < nunits && unitv[i] != NULL) | 483 | if (nunits > (size_t)0 && (size_t)i < nunits && unitv[i] != NULL) |
484 | asprintf (&outbuff, "%s %s", outbuff, unitv[i]); | 484 | xasprintf (&outbuff, "%s %s", outbuff, unitv[i]); |
485 | 485 | ||
486 | /* Write perfdata with whatever can be parsed by strtod, if possible */ | 486 | /* Write perfdata with whatever can be parsed by strtod, if possible */ |
487 | ptr = NULL; | 487 | ptr = NULL; |
@@ -523,7 +523,7 @@ main (int argc, char **argv) | |||
523 | 523 | ||
524 | current_length=0; | 524 | current_length=0; |
525 | for(i=0; i<total_oids; i++) { | 525 | for(i=0; i<total_oids; i++) { |
526 | asprintf(&temp_string,"%.0f",response_value[i]); | 526 | xasprintf(&temp_string,"%.0f",response_value[i]); |
527 | if(temp_string==NULL) | 527 | if(temp_string==NULL) |
528 | die(STATE_UNKNOWN,_("Cannot asprintf()")); | 528 | die(STATE_UNKNOWN,_("Cannot asprintf()")); |
529 | response_length = strlen(temp_string); | 529 | response_length = strlen(temp_string); |
@@ -869,7 +869,7 @@ validate_arguments () | |||
869 | die(STATE_UNKNOWN, _("No OIDs specified\n")); | 869 | die(STATE_UNKNOWN, _("No OIDs specified\n")); |
870 | 870 | ||
871 | if (proto == NULL) | 871 | if (proto == NULL) |
872 | asprintf(&proto, DEFAULT_PROTOCOL); | 872 | xasprintf(&proto, DEFAULT_PROTOCOL); |
873 | 873 | ||
874 | if ((strcmp(proto,"1") == 0) || (strcmp(proto, "2c")==0)) { /* snmpv1 or snmpv2c */ | 874 | if ((strcmp(proto,"1") == 0) || (strcmp(proto, "2c")==0)) { /* snmpv1 or snmpv2c */ |
875 | numauthpriv = 2; | 875 | numauthpriv = 2; |
@@ -879,7 +879,7 @@ validate_arguments () | |||
879 | } | 879 | } |
880 | else if ( strcmp (proto, "3") == 0 ) { /* snmpv3 args */ | 880 | else if ( strcmp (proto, "3") == 0 ) { /* snmpv3 args */ |
881 | if (seclevel == NULL) | 881 | if (seclevel == NULL) |
882 | asprintf(&seclevel, "noAuthNoPriv"); | 882 | xasprintf(&seclevel, "noAuthNoPriv"); |
883 | 883 | ||
884 | if (strcmp(seclevel, "noAuthNoPriv") == 0) { | 884 | if (strcmp(seclevel, "noAuthNoPriv") == 0) { |
885 | numauthpriv = 2; | 885 | numauthpriv = 2; |
@@ -892,7 +892,7 @@ validate_arguments () | |||
892 | } | 892 | } |
893 | 893 | ||
894 | if (authproto == NULL ) | 894 | if (authproto == NULL ) |
895 | asprintf(&authproto, DEFAULT_AUTH_PROTOCOL); | 895 | xasprintf(&authproto, DEFAULT_AUTH_PROTOCOL); |
896 | 896 | ||
897 | if (secname == NULL) | 897 | if (secname == NULL) |
898 | die(STATE_UNKNOWN, _("Required parameter: %s\n"), "secname"); | 898 | die(STATE_UNKNOWN, _("Required parameter: %s\n"), "secname"); |
@@ -913,7 +913,7 @@ validate_arguments () | |||
913 | authpriv[7] = strdup (authpasswd); | 913 | authpriv[7] = strdup (authpasswd); |
914 | } else if ( strcmp(seclevel, "authPriv") == 0 ) { | 914 | } else if ( strcmp(seclevel, "authPriv") == 0 ) { |
915 | if (privproto == NULL ) | 915 | if (privproto == NULL ) |
916 | asprintf(&privproto, DEFAULT_PRIV_PROTOCOL); | 916 | xasprintf(&privproto, DEFAULT_PRIV_PROTOCOL); |
917 | 917 | ||
918 | if (privpasswd == NULL) | 918 | if (privpasswd == NULL) |
919 | die(STATE_UNKNOWN, _("Required parameter: %s\n"), "privpasswd"); | 919 | die(STATE_UNKNOWN, _("Required parameter: %s\n"), "privpasswd"); |