Hi, On Tue, May 29, 2018 at 11:31 AM, Luiz Augusto von Dentz <luiz.dentz@xxxxxxxxx> wrote: > From: Luiz Augusto von Dentz <luiz.von.dentz@xxxxxxxxx> > > Command which start with optional arguments might be using optargs > format in which case checking argument count check does not work so > this disables it which shall make things btmgmt work: > > [mgmt]# add-adv --help > Usage: add-adv [options] <instance_id> > Options: > -u, --uuid <uuid> Service UUID > -d, --adv-data <data> Advertising Data bytes > -s, --scan-rsp <data> Scan Response Data bytes > -t, --timeout <timeout> Timeout in seconds > -D, --duration <duration> Duration in seconds > -c, --connectable "connectable" flag > -g, --general-discov "general-discoverable" flag > -l, --limited-discov "limited-discoverable" flag > -n, --scan-rsp-local-name "local-name" flag > -a, --scan-rsp-appearance "appearance" flag > -m, --managed-flags "managed-flags" flag > -p, --tx-power "tx-power" flag > e.g.: > add-adv -u 180d -u 180f -d 080954657374204C45 1 > [mgmt]# add-adv -u 180d -u 180f -d 080954657374204C45 1 > Instance added: 1 > --- > src/shared/shell.c | 4 +++- > 1 file changed, 3 insertions(+), 1 deletion(-) > > diff --git a/src/shared/shell.c b/src/shared/shell.c > index e7f17e021..97d91577e 100644 > --- a/src/shared/shell.c > +++ b/src/shared/shell.c > @@ -295,6 +295,7 @@ static int cmd_exec(const struct bt_shell_menu_entry *entry, > size_t len; > char *man, *opt; > int flags = WRDE_NOCMD; > + bool optargs = false; > > if (!entry->arg || entry->arg[0] == '\0') { > if (argc > 1) { > @@ -323,6 +324,7 @@ static int cmd_exec(const struct bt_shell_menu_entry *entry, > goto optional; > } > man = strndup(opt, man - opt + 1); > + optargs = true; > } > > if (parse_args(man, &w, "<>", flags) < 0) { > @@ -355,7 +357,7 @@ optional: > free(opt); > > /* Check if there are too many arguments */ > - if ((unsigned) argc - 1 > w.we_wordc && !w.we_offs) { > + if (!optargs && ((unsigned int) argc - 1 > w.we_wordc && !w.we_offs)) { > print_text(COLOR_HIGHLIGHT, "Too many arguments: %d > %zu", > argc - 1, w.we_wordc); > goto fail; > -- > 2.17.0 Applied. -- Luiz Augusto von Dentz -- To unsubscribe from this list: send the line "unsubscribe linux-bluetooth" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html