diff options
author | Holger Weiss <hweiss@users.sourceforge.net> | 2007-09-26 10:57:44 +0000 |
---|---|---|
committer | Holger Weiss <hweiss@users.sourceforge.net> | 2007-09-26 10:57:44 +0000 |
commit | faf593d23a7c4c09143373053106f61da3265384 (patch) | |
tree | 5059abbc2e8794ec1879a02c3a4a4c157735ad40 | |
parent | 0b66867288b1eb9b9c7a2ffa5cf5e3fd473dc1e7 (diff) | |
download | monitoring-plugins-faf593d23a7c4c09143373053106f61da3265384.tar.gz |
Drop the weird and undocumented behaviour of using positional argument
parsing instead of getopt(3) if 8 command line arguments were given (as
suggested by Matthias) and check whether all required arguments have
been specified in order to spit out proper error messages and to avoid a
possible segfault (as suggested by Thomas).
git-svn-id: https://nagiosplug.svn.sourceforge.net/svnroot/nagiosplug/nagiosplug/trunk@1800 f882894a-f735-0410-b71e-b25c423dba1c
-rw-r--r-- | NEWS | 2 | ||||
-rw-r--r-- | plugins/check_radius.c | 34 |
2 files changed, 12 insertions, 24 deletions
@@ -29,6 +29,8 @@ This file documents the major additions and syntax changes between releases. - enforce a full path for the command to run The "negate" utility can now remap custom states Check_radius now supports radiusclient-ng + The (undocumented) positional parameter parsing which check_radius used + instead of getopt(3) if 8 arguments were given is no longer available Check_by_ssh now supports multiline output IPv6 support can now be disabled using ./configure --without-ipv6 Fix check_ntp now honor ntp flags diff --git a/plugins/check_radius.c b/plugins/check_radius.c index 32af91fa..dcb85aca 100644 --- a/plugins/check_radius.c +++ b/plugins/check_radius.c @@ -225,30 +225,6 @@ process_arguments (int argc, char **argv) {0, 0, 0, 0} }; - if (argc < 2) - return ERROR; - - if (argc == 9) { - config_file = argv[1]; - username = argv[2]; - password = argv[3]; - if (is_intpos (argv[4])) - timeout_interval = atoi (argv[4]); - else - usage2 (_("Timeout interval must be a positive integer"), optarg); - if (is_intpos (argv[5])) - retries = atoi (argv[5]); - else - usage4 (_("Number of retries must be a positive integer")); - server = argv[6]; - if (is_intpos (argv[7])) - port = atoi (argv[7]); - else - usage4 (_("Port must be a positive integer")); - expect = argv[8]; - return OK; - } - while (1) { c = getopt_long (argc, argv, "+hVvH:P:F:u:p:n:t:r:e:", longopts, &option); @@ -309,6 +285,16 @@ process_arguments (int argc, char **argv) break; } } + + if (server == NULL) + usage4 (_("Host not specified")); + if (username == NULL) + usage4 (_("User not specified")); + if (password == NULL) + usage4 (_("Password not specified")); + if (config_file == NULL) + usage4 (_("Configuration file not specified")); + return OK; } |