From 2e498b48bbfb127b33d2e84ba87c7d9456c42558 Mon Sep 17 00:00:00 2001 From: Stefan Metzmacher Date: Tue, 21 Aug 2007 14:22:16 +0000 Subject: r24599: patch from Karolin Seeger : smbd, nmbd and winbindd can be started with invalid options currently. The first patch attached would be a possible solution. It contains an exit if an invalid option has been used. The main problem is, that existing setups with wrong options or missing arguments in start scripts will break (which is the right behaviour from my point of view). metze (This used to be commit 8532e3182ab44d4ac84823e9798293f156192aaf) --- source3/nmbd/nmbd.c | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) (limited to 'source3/nmbd/nmbd.c') diff --git a/source3/nmbd/nmbd.c b/source3/nmbd/nmbd.c index b14e5a0b61..4f1dd93cae 100644 --- a/source3/nmbd/nmbd.c +++ b/source3/nmbd/nmbd.c @@ -652,6 +652,7 @@ static BOOL open_sockets(enum smb_server_mode server_mode, int port) BOOL no_process_group = False; BOOL log_stdout = False; enum smb_server_mode server_mode = SERVER_MODE_DAEMON; + int opt; struct poptOption long_options[] = { POPT_AUTOHELP @@ -674,7 +675,14 @@ static BOOL open_sockets(enum smb_server_mode server_mode, int port) global_nmb_port = NMB_PORT; pc = poptGetContext("nmbd", argc, argv, long_options, 0); - while (poptGetNextOpt(pc) != -1) {}; + while ((opt = poptGetNextOpt(pc)) != -1) { + switch (opt) { + default: + d_fprintf(stderr, "\nInvalid option %s: %s\n", + poptBadOption(pc, 0), poptStrerror(opt)); + exit(1); + } + }; poptFreeContext(pc); global_in_nmbd = True; -- cgit