Module: monitoring-plugins
    Branch: master
    Commit: e5db81bb29544b1be6500ad4a4dec5b4002c9962
    Author: Aksel Sjögren <[email protected]>
 Committer: Sven Nierlein <[email protected]>
      Date: Tue Nov 29 13:55:32 2022 +0100
       URL: 
https://www.monitoring-plugins.org/repositories/monitoring-plugins/commit/?id=e5db81b

check_icmp: fix parsing help/version long options

Fix parsing of the long options --help and --version. The special
handling must be done before calling getopt().
This fixes erroneous output like:

    ./check_icmp --version
    ./check_icmp: invalid option -- '-'
    ./check_icmp: invalid option -- 'e'
    ./check_icmp: invalid option -- 'r'
    ./check_icmp: invalid option -- '-'
    ./check_icmp: invalid option -- 'e'
    ./check_icmp: invalid option -- 'r'

Signed-off-by: Aksel Sjögren <[email protected]>

---

 plugins-root/check_icmp.c | 16 ++++++++--------
 1 file changed, 8 insertions(+), 8 deletions(-)

diff --git a/plugins-root/check_icmp.c b/plugins-root/check_icmp.c
index f8f1535..1f87b75 100644
--- a/plugins-root/check_icmp.c
+++ b/plugins-root/check_icmp.c
@@ -451,6 +451,14 @@ main(int argc, char **argv)
                packets = 5;
        }
 
+       /* support "--help" and "--version" */
+       if(argc == 2) {
+               if(!strcmp(argv[1], "--help"))
+                       strcpy(argv[1], "-h");
+               if(!strcmp(argv[1], "--version"))
+                       strcpy(argv[1], "-V");
+       }
+
        /* Parse protocol arguments first */
        for(i = 1; i < argc; i++) {
                while((arg = getopt(argc, argv, opts_str)) != EOF) {
@@ -555,14 +563,6 @@ main(int argc, char **argv)
        /* Parse extra opts if any */
        argv=np_extra_opts(&argc, argv, progname);
 
-       /* support "--help" and "--version" */
-       if(argc == 2) {
-               if(!strcmp(argv[1], "--help"))
-                       strcpy(argv[1], "-h");
-               if(!strcmp(argv[1], "--version"))
-                       strcpy(argv[1], "-V");
-       }
-
        argv = &argv[optind];
        while(*argv) {
                add_target(*argv);

Reply via email to