diff options
Diffstat (limited to 'plugins/check_disk.c')
| -rw-r--r-- | plugins/check_disk.c | 15 |
1 files changed, 13 insertions, 2 deletions
diff --git a/plugins/check_disk.c b/plugins/check_disk.c index f6966721..bd060218 100644 --- a/plugins/check_disk.c +++ b/plugins/check_disk.c | |||
| @@ -233,9 +233,10 @@ process_arguments (int argc, char **argv) | |||
| 233 | struct name_list **fstail = &fs_exclude_list; | 233 | struct name_list **fstail = &fs_exclude_list; |
| 234 | struct name_list **dptail = &dp_exclude_list; | 234 | struct name_list **dptail = &dp_exclude_list; |
| 235 | struct name_list *temp_list; | 235 | struct name_list *temp_list; |
| 236 | unsigned long l; | ||
| 237 | int result = OK; | 236 | int result = OK; |
| 238 | 237 | ||
| 238 | unsigned long l; | ||
| 239 | |||
| 239 | int option_index = 0; | 240 | int option_index = 0; |
| 240 | static struct option long_options[] = { | 241 | static struct option long_options[] = { |
| 241 | {"timeout", required_argument, 0, 't'}, | 242 | {"timeout", required_argument, 0, 't'}, |
| @@ -322,6 +323,8 @@ process_arguments (int argc, char **argv) | |||
| 322 | usage (_("Critical threshold must be integer or percentage!\n")); | 323 | usage (_("Critical threshold must be integer or percentage!\n")); |
| 323 | } | 324 | } |
| 324 | case 'u': | 325 | case 'u': |
| 326 | if (units) | ||
| 327 | free(units); | ||
| 325 | if (! strcmp (optarg, "bytes")) { | 328 | if (! strcmp (optarg, "bytes")) { |
| 326 | mult = (uintmax_t)1; | 329 | mult = (uintmax_t)1; |
| 327 | units = strdup ("B"); | 330 | units = strdup ("B"); |
| @@ -340,13 +343,19 @@ process_arguments (int argc, char **argv) | |||
| 340 | } else { | 343 | } else { |
| 341 | die (STATE_UNKNOWN, _("unit type %s not known\n"), optarg); | 344 | die (STATE_UNKNOWN, _("unit type %s not known\n"), optarg); |
| 342 | } | 345 | } |
| 346 | if (units == NULL) | ||
| 347 | die (STATE_UNKNOWN, _("failed allocating storage for '%s'\n"), "units"); | ||
| 343 | break; | 348 | break; |
| 344 | case 'k': /* display mountpoint */ | 349 | case 'k': /* display mountpoint */ |
| 345 | mult = 1024; | 350 | mult = 1024; |
| 351 | if (units) | ||
| 352 | free(units); | ||
| 346 | units = strdup ("kB"); | 353 | units = strdup ("kB"); |
| 347 | break; | 354 | break; |
| 348 | case 'm': /* display mountpoint */ | 355 | case 'm': /* display mountpoint */ |
| 349 | mult = 1024 * 1024; | 356 | mult = 1024 * 1024; |
| 357 | if (units) | ||
| 358 | free(units); | ||
| 350 | units = strdup ("kB"); | 359 | units = strdup ("kB"); |
| 351 | break; | 360 | break; |
| 352 | case 'l': | 361 | case 'l': |
| @@ -475,8 +484,10 @@ INPUT ERROR: C_DF (%lu) should be less than W_DF (%lu) and both should be greate | |||
| 475 | return ERROR; | 484 | return ERROR; |
| 476 | } | 485 | } |
| 477 | 486 | ||
| 478 | if (units == NULL) | 487 | if (units == NULL) { |
| 479 | units = strdup ("MB"); | 488 | units = strdup ("MB"); |
| 489 | mult = (uintmax_t)1024 * 1024; | ||
| 490 | } | ||
| 480 | return OK; | 491 | return OK; |
| 481 | } | 492 | } |
| 482 | 493 | ||
