diff options
Diffstat (limited to 'plugins/check_procs.c')
| -rw-r--r-- | plugins/check_procs.c | 11 |
1 files changed, 10 insertions, 1 deletions
diff --git a/plugins/check_procs.c b/plugins/check_procs.c index 2151fb38..d875a618 100644 --- a/plugins/check_procs.c +++ b/plugins/check_procs.c | |||
| @@ -318,6 +318,8 @@ process_arguments (int argc, char **argv) | |||
| 318 | int err; | 318 | int err; |
| 319 | int cflags = REG_NOSUB | REG_EXTENDED; | 319 | int cflags = REG_NOSUB | REG_EXTENDED; |
| 320 | char errbuf[MAX_INPUT_BUFFER]; | 320 | char errbuf[MAX_INPUT_BUFFER]; |
| 321 | char *temp_string; | ||
| 322 | int i=0; | ||
| 321 | static struct option longopts[] = { | 323 | static struct option longopts[] = { |
| 322 | {"warning", required_argument, 0, 'w'}, | 324 | {"warning", required_argument, 0, 'w'}, |
| 323 | {"critical", required_argument, 0, 'c'}, | 325 | {"critical", required_argument, 0, 'c'}, |
| @@ -450,7 +452,14 @@ process_arguments (int argc, char **argv) | |||
| 450 | regerror (err, &re_args, errbuf, MAX_INPUT_BUFFER); | 452 | regerror (err, &re_args, errbuf, MAX_INPUT_BUFFER); |
| 451 | die (STATE_UNKNOWN, "PROCS %s: %s - %s\n", _("UNKNOWN"), _("Could not compile regular expression"), errbuf); | 453 | die (STATE_UNKNOWN, "PROCS %s: %s - %s\n", _("UNKNOWN"), _("Could not compile regular expression"), errbuf); |
| 452 | } | 454 | } |
| 453 | asprintf (&fmt, "%s%sregex args '%s'", (fmt ? fmt : ""), (options ? ", " : ""), optarg); | 455 | /* Strip off any | within the regex optarg */ |
| 456 | temp_string = strdup(optarg); | ||
| 457 | while(temp_string[i]!='\0'){ | ||
| 458 | if(temp_string[i]=='|') | ||
| 459 | temp_string[i]=','; | ||
| 460 | i++; | ||
| 461 | } | ||
| 462 | asprintf (&fmt, "%s%sregex args '%s'", (fmt ? fmt : ""), (options ? ", " : ""), temp_string); | ||
| 454 | options |= EREG_ARGS; | 463 | options |= EREG_ARGS; |
| 455 | break; | 464 | break; |
| 456 | case 'r': /* RSS */ | 465 | case 'r': /* RSS */ |
