Re: [PATCH] ksmbd-tools: add missing long option in adduser/addshare/control

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi Namjae,

2022년 6월 2일 (목) 오전 10:14, Namjae Jeon <linkinjeon@xxxxxxxxxx>님이 작성:
>
> Add missing long option in adduser/addshare/control.
>
> Reported-by: David Howells <dhowells@xxxxxxxxxx>
> Signed-off-by: Namjae Jeon <linkinjeon@xxxxxxxxxx>
> ---
>  addshare/addshare.c | 11 ++++++++++-
>  adduser/adduser.c   | 12 +++++++++++-
>  control/control.c   |  9 ++++++++-
>  3 files changed, 29 insertions(+), 3 deletions(-)
>
> diff --git a/addshare/addshare.c b/addshare/addshare.c
> index 4d25047..a8ba71a 100644
> --- a/addshare/addshare.c
> +++ b/addshare/addshare.c
> @@ -54,6 +54,15 @@ static void usage(void)
>         exit(EXIT_FAILURE);
>  }
>
> +static const struct option opts[] = {
> +       {"add-share",           required_argument,      NULL,   'a' },
> +       {"del-share",           required_argument,      NULL,   'd' },
> +       {"update-share",        required_argument,      NULL,   'u' },
> +       {"options",             required_argument,      NULL,   'o' },
> +       {"version",             no_argument,            NULL,   'V' },
> +       {"verbose",             no_argument,            NULL,   'v' },
> +};

We have to add the last element, {NULL, 0, NULL, 0} to avoid
Segment Fault. otherwise Looks good to me.

> +
>  static void show_version(void)
>  {
>         printf("ksmbd-tools version : %s\n", KSMBD_TOOLS_VERSION);
> @@ -102,7 +111,7 @@ int main(int argc, char *argv[])
>         set_logger_app_name("ksmbd.addshare");
>
>         opterr = 0;
> -       while ((c = getopt(argc, argv, "c:a:d:u:p:o:Vvh")) != EOF)
> +       while ((c = getopt_long(argc, argv, "c:a:d:u:p:o:Vvh", opts, NULL)) != EOF)
>                 switch (c) {
>                 case 'a':
>                         arg_name = g_ascii_strdown(optarg, strlen(optarg));
> diff --git a/adduser/adduser.c b/adduser/adduser.c
> index 88b12db..60a059d 100644
> --- a/adduser/adduser.c
> +++ b/adduser/adduser.c
> @@ -50,6 +50,16 @@ static void usage(void)
>         exit(EXIT_FAILURE);
>  }
>
> +static const struct option opts[] = {
> +       {"add-user",            required_argument,      NULL,   'a' },
> +       {"del-user",            required_argument,      NULL,   'd' },
> +       {"update-user",         required_argument,      NULL,   'u' },
> +       {"password",            required_argument,      NULL,   'p' },
> +       {"import-users",        required_argument,      NULL,   'i' },
> +       {"version",             no_argument,            NULL,   'V' },
> +       {"verbose",             no_argument,            NULL,   'v' },
> +};
> +
>  static void show_version(void)
>  {
>         printf("ksmbd-tools version : %s\n", KSMBD_TOOLS_VERSION);
> @@ -102,7 +112,7 @@ int main(int argc, char *argv[])
>         set_logger_app_name("ksmbd.adduser");
>
>         opterr = 0;
> -       while ((c = getopt(argc, argv, "c:i:a:d:u:p:Vvh")) != EOF)
> +       while ((c = getopt_long(argc, argv, "c:i:a:d:u:p:Vvh", opts, NULL)) != EOF)
>                 switch (c) {
>                 case 'a':
>                         arg_account = g_strdup(optarg);
> diff --git a/control/control.c b/control/control.c
> index 780a48a..3dc8c7e 100644
> --- a/control/control.c
> +++ b/control/control.c
> @@ -23,6 +23,13 @@ static void usage(void)
>         exit(EXIT_FAILURE);
>  }
>
> +static const struct option opts[] = {
> +       {"shutdown",            no_argument,            NULL,   's' },
> +       {"debug",               required_argument,      NULL,   'd' },
> +       {"ksmbd-version",       no_argument,            NULL,   'c' },
> +       {"version",             no_argument,            NULL,   'V' },
> +};
> +
>  static void show_version(void)
>  {
>         printf("ksmbd-tools version : %s\n", KSMBD_TOOLS_VERSION);
> @@ -101,7 +108,7 @@ int main(int argc, char *argv[])
>         }
>
>         opterr = 0;
> -       while ((c = getopt(argc, argv, "sd:cVh")) != EOF)
> +       while ((c = getopt_long(argc, argv, "sd:cVh", opts, NULL)) != EOF)
>                 switch (c) {
>                 case 's':
>                         ret = ksmbd_control_shutdown();
> --
> 2.25.1
>


-- 
Thanks,
Hyunchul




[Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux