From faf593d23a7c4c09143373053106f61da3265384 Mon Sep 17 00:00:00 2001 From: Holger Weiss Date: Wed, 26 Sep 2007 10:57:44 +0000 Subject: 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 --- plugins/check_radius.c | 34 ++++++++++------------------------ 1 file changed, 10 insertions(+), 24 deletions(-) (limited to 'plugins') 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; } -- cgit v1.2.3