فهرست منبع

Don't try to print `optarg' (which will be a NULL pointer) if an unknown
command line option was used, as this leads to a segfault on some
systems. The unknown option will be printed by getopt(3) anyway. So,
simply call print_usage() and exit UNKNOWN via the new usage5() instead.


git-svn-id: https://nagiosplug.svn.sourceforge.net/svnroot/nagiosplug/nagiosplug/trunk@1590 f882894a-f735-0410-b71e-b25c423dba1c

Holger Weiss 19 سال پیش
والد
کامیت
fd329a1e91

+ 1 - 1
plugins-root/check_dhcp.c

@@ -1091,7 +1091,7 @@ int call_getopt(int argc, char **argv){
 			break;
 
 		case '?': /* help */
-			usage2 (_("Unknown argument"), optarg);
+			usage5 ();
 			break;
 
 		default:

+ 1 - 1
plugins/check_apt.c

@@ -201,7 +201,7 @@ int process_arguments (int argc, char **argv) {
 			break;
 		default:
 			/* print short usage statement if args not parsable */
-			usage_va(_("Unknown argument - %s"), optarg);
+			usage5();
 		}
 	}
 

+ 1 - 1
plugins/check_by_ssh.c

@@ -262,7 +262,7 @@ process_arguments (int argc, char **argv)
 			asprintf (&comm, "%s -%c", comm, c);
 			break;
 		default:									/* help */
-			usage_va(_("Unknown argument - %s"), optarg);
+			usage5();
 		}
 	}
 

+ 2 - 2
plugins/check_dig.c

@@ -265,8 +265,8 @@ process_arguments (int argc, char **argv)
     case 'a':
       expected_address = optarg;
       break;
-    default:                  /* usage_va */
-      usage_va(_("Unknown argument - %s"), optarg);
+    default:                  /* usage5 */
+      usage5();
     }
   }
 

+ 1 - 1
plugins/check_dns.c

@@ -370,7 +370,7 @@ process_arguments (int argc, char **argv)
       critical = optarg;
       break;
     default: /* args not parsable */
-      usage_va(_("Unknown argument - %s"), optarg);
+      usage5();
     }
   }
 

+ 1 - 1
plugins/check_fping.c

@@ -258,7 +258,7 @@ process_arguments (int argc, char **argv)
 
     switch (c) {
     case '?':                 /* print short usage statement if args not parsable */
-      usage2 (_("Unknown argument"), optarg);
+      usage5 ();
     case 'h':                 /* help */
       print_help ();
       exit (STATE_OK);

+ 1 - 1
plugins/check_game.c

@@ -249,7 +249,7 @@ process_arguments (int argc, char **argv)
         return ERROR;
       break;
     default: /* args not parsable */
-      usage_va(_("Unknown argument - %s"), optarg);
+      usage5();
     }
   }
 

+ 1 - 1
plugins/check_hpjd.c

@@ -351,7 +351,7 @@ process_arguments (int argc, char **argv)
 			print_help ();
 			exit (STATE_OK);
 		case '?':									/* help */
-			usage2 (_("Unknown argument"), optarg);
+			usage5 ();
 		}
 	}
 

+ 1 - 1
plugins/check_http.c

@@ -225,7 +225,7 @@ process_arguments (int argc, char **argv)
 
     switch (c) {
     case '?': /* usage */
-      usage2 (_("Unknown argument"), optarg);
+      usage5 ();
       break;
     case 'h': /* help */
       print_help ();

+ 1 - 1
plugins/check_ide_smart.c

@@ -212,7 +212,7 @@ main (int argc, char *argv[])
 			print_revision (progname, revision);
 			return STATE_OK;
 		default:
-			usage2 (_("Unknown argument"), optarg);
+			usage5 ();
 		}
 	}
 

+ 1 - 1
plugins/check_ldap.c

@@ -325,7 +325,7 @@ process_arguments (int argc, char **argv)
 #endif
 			break;
 		default:
-			usage2 (_("Unknown argument"), optarg);
+			usage5 ();
 		}
 	}
 

+ 1 - 1
plugins/check_load.c

@@ -236,7 +236,7 @@ process_arguments (int argc, char **argv)
 			print_help ();
 			exit (STATE_OK);
 		case '?':									/* help */
-			usage2 (_("Unknown argument"), optarg);
+			usage5 ();
 		}
 	}
 

+ 1 - 1
plugins/check_mrtg.c

@@ -243,7 +243,7 @@ process_arguments (int argc, char **argv)
 			print_help ();
 			exit (STATE_OK);
 		case '?':									/* help */
-			usage2 (_("Unknown argument"), optarg);
+			usage5 ();
 		}
 	}
 

+ 1 - 1
plugins/check_mrtgtraf.c

@@ -277,7 +277,7 @@ process_arguments (int argc, char **argv)
 			print_help ();
 			exit (STATE_OK);
 		case '?':									/* help */
-			usage2 (_("Unknown argument"), optarg);
+			usage5 ();
 		}
 	}
 

+ 1 - 1
plugins/check_mysql.c

@@ -308,7 +308,7 @@ process_arguments (int argc, char **argv)
 			verbose++;
 			break;
 		case '?':									/* help */
-			usage2 (_("Unknown argument"), optarg);
+			usage5 ();
 		}
 	}
 

+ 1 - 1
plugins/check_mysql_query.c

@@ -240,7 +240,7 @@ process_arguments (int argc, char **argv)
 			critical = optarg;
 			break;
 		case '?':									/* help */
-			usage2 (_("Unknown argument"), optarg);
+			usage5 ();
 		}
 	}
 

+ 1 - 1
plugins/check_nagios.c

@@ -258,7 +258,7 @@ process_arguments (int argc, char **argv)
 			verbose++;
 			break;
 		default:									/* print short usage_va statement if args not parsable */
-			usage_va(_("Unknown argument - %s"), optarg);
+			usage5();
 		}
 	}
 

+ 1 - 1
plugins/check_nt.c

@@ -492,7 +492,7 @@ int process_arguments(int argc, char **argv){
 		switch (c)
 			{
 			case '?': /* print short usage statement if args not parsable */
-			usage2 (_("Unknown argument"), optarg);
+			usage5 ();
 			case 'h': /* help */
 				print_help();
 				exit(STATE_OK);

+ 1 - 1
plugins/check_ntp.c

@@ -694,7 +694,7 @@ int process_arguments(int argc, char **argv){
 			break;
 		case '?':
 			/* print short usage statement if args not parsable */
-			usage2 (_("Unknown argument"), optarg);
+			usage5 ();
 			break;
 		}
 	}

+ 1 - 1
plugins/check_nwstat.c

@@ -1355,7 +1355,7 @@ int process_arguments(int argc, char **argv) {
 		switch (c)
 			{
 			case '?': /* print short usage statement if args not parsable */
-			usage2 (_("Unknown argument"), optarg);
+			usage5 ();
 			case 'h': /* help */
 				print_help();
 				exit(STATE_OK);

+ 1 - 1
plugins/check_overcr.c

@@ -341,7 +341,7 @@ process_arguments (int argc, char **argv)
 
 		switch (c) {
 		case '?':									/* print short usage statement if args not parsable */
-			usage2 (_("Unknown argument"), optarg);
+			usage5 ();
 		case 'h':									/* help */
 			print_help ();
 			exit (STATE_OK);

+ 1 - 1
plugins/check_pgsql.c

@@ -225,7 +225,7 @@ process_arguments (int argc, char **argv)
 
 		switch (c) {
 		case '?':     /* usage */
-			usage2 (_("Unknown argument"), optarg);
+			usage5 ();
 		case 'h':     /* help */
 			print_help ();
 			exit (STATE_OK);

+ 1 - 1
plugins/check_ping.c

@@ -211,7 +211,7 @@ process_arguments (int argc, char **argv)
 
 		switch (c) {
 		case '?':	/* usage */
-			usage2 (_("Unknown argument"), optarg);
+			usage5 ();
 		case 'h':	/* help */
 			print_help ();
 			exit (STATE_OK);

+ 1 - 1
plugins/check_procs.c

@@ -359,7 +359,7 @@ process_arguments (int argc, char **argv)
 
 		switch (c) {
 		case '?':									/* help */
-			usage2 (_("Unknown argument"), optarg);
+			usage5 ();
 		case 'h':									/* help */
 			print_help ();
 			exit (STATE_OK);

+ 1 - 1
plugins/check_radius.c

@@ -235,7 +235,7 @@ process_arguments (int argc, char **argv)
 
 		switch (c) {
 		case '?':									/* print short usage statement if args not parsable */
-			usage2 (_("Unknown argument"), optarg);
+			usage5 ();
 		case 'h':									/* help */
 			print_help ();
 			exit (OK);

+ 1 - 1
plugins/check_real.c

@@ -368,7 +368,7 @@ process_arguments (int argc, char **argv)
 			print_help ();
 			exit (STATE_OK);
 		case '?':									/* usage */
-			usage2 (_("Unknown argument"), optarg);
+			usage5 ();
 		}
 	}
 

+ 1 - 1
plugins/check_smtp.c

@@ -664,7 +664,7 @@ process_arguments (int argc, char **argv)
 			print_help ();
 			exit (STATE_OK);
 		case '?':									/* help */
-			usage2 (_("Unknown argument"), optarg);
+			usage5 ();
 		}
 	}
 

+ 1 - 1
plugins/check_snmp.c

@@ -444,7 +444,7 @@ process_arguments (int argc, char **argv)
 
 		switch (c) {
 		case '?':	/* usage */
-			usage2 (_("Unknown argument"), optarg);
+			usage5 ();
 		case 'h':	/* help */
 			print_help ();
 			exit (STATE_OK); 

+ 1 - 1
plugins/check_ssh.c

@@ -128,7 +128,7 @@ process_arguments (int argc, char **argv)
 
 		switch (c) {
 		case '?':									/* help */
-			usage2 (_("Unknown argument"), optarg);
+			usage5 ();
 		case 'V':									/* version */
 			print_revision (progname, revision);
 			exit (STATE_OK);

+ 1 - 1
plugins/check_swap.c

@@ -468,7 +468,7 @@ process_arguments (int argc, char **argv)
 			print_help ();
 			exit (STATE_OK);
 		case '?':									/* error */
-			usage2 (_("Unknown argument"), optarg);
+			usage5 ();
 		}
 	}
 

+ 1 - 1
plugins/check_tcp.c

@@ -443,7 +443,7 @@ process_arguments (int argc, char **argv)
 
 		switch (c) {
 		case '?':                 /* print short usage statement if args not parsable */
-			usage2 (_("Unknown argument"), optarg);
+			usage5 ();
 		case 'h':                 /* help */
 			print_help ();
 			exit (STATE_OK);

+ 1 - 1
plugins/check_time.c

@@ -232,7 +232,7 @@ process_arguments (int argc, char **argv)
 
 		switch (c) {
 		case '?':									/* print short usage statement if args not parsable */
-			usage2 (_("Unknown argument"), optarg);
+			usage5 ();
 		case 'h':									/* help */
 			print_help ();
 			exit (STATE_OK);

+ 1 - 1
plugins/check_ups.c

@@ -494,7 +494,7 @@ process_arguments (int argc, char **argv)
 
 		switch (c) {
 		case '?':									/* help */
-			usage2 (_("Unknown argument"), optarg);
+			usage5 ();
 		case 'H':									/* hostname */
 			if (is_host (optarg)) {
 				server_address = optarg;

+ 1 - 1
plugins/check_users.c

@@ -156,7 +156,7 @@ process_arguments (int argc, char **argv)
 
 		switch (c) {
 		case '?':									/* print short usage statement if args not parsable */
-			usage2 (_("Unknown argument"), optarg);
+			usage5 ();
 		case 'h':									/* help */
 			print_help ();
 			exit (STATE_OK);

+ 1 - 1
plugins/negate.c

@@ -189,7 +189,7 @@ process_arguments (int argc, char **argv)
 
 		switch (c) {
 		case '?':     /* help */
-			usage2 (_("Unknown argument"), optarg);
+			usage5 ();
 			break;
 		case 'h':     /* help */
 			print_help ();

+ 1 - 1
plugins/urlize.c

@@ -100,7 +100,7 @@ main (int argc, char **argv)
 			break;
 		case '?':
 		default:
-			usage2 (_("Unknown argument"), optarg);
+			usage5 ();
 		}
 	}
 

+ 7 - 0
plugins/utils.c

@@ -94,6 +94,13 @@ usage4 (const char *msg)
 	exit (STATE_UNKNOWN);
 }
 
+void
+usage5 (void)
+{
+	print_usage();
+	exit (STATE_UNKNOWN);
+}
+
 char *
 clean_revstring (const char *revstring)
 {

+ 3 - 2
plugins/utils.h

@@ -80,8 +80,9 @@ int max_state (int a, int b);
 void usage (const char *) __attribute__((noreturn));
 void usage2(const char *, const char *) __attribute__((noreturn));
 void usage3(const char *, int) __attribute__((noreturn));
-void usage4(const char *);
-void usage_va(const char *fmt, ...);
+void usage4(const char *) __attribute__((noreturn));
+void usage5(void) __attribute__((noreturn));
+void usage_va(const char *fmt, ...) __attribute__((noreturn));
 
 const char *state_text (int);