diff mbox series

[v2,2/6] patman: Fix implicit command inserting

Message ID 20220701132328.v2.2.I04290e8071b92140ad565ea7397ce8604de743fe@changeid
State Superseded
Delegated to: Simon Glass
Headers show
Series patman: Small fixes plus remove --no-tree from checkpatch for linux | expand

Commit Message

Doug Anderson July 1, 2022, 8:23 p.m. UTC
The logic to insert an implicit command has always been a bit broken
but it was masked by another bug fixed in the patch ("patman: Don't
look at sys.argv when parsing settings"). Specifically, imagine that
you're just calling patman like this:

  patman -c1

After the parse_known_args() command then the "-c1" will have been
parsed and we'll have no command. The "rest" variable will be an empty
list. Going into the logic you can see that nargs = 0. The implicit
insertion of send ideally would create an argument list of:
  ['-c1', 'send']
...but it doesn't because argv[:-0] is the same as argv[:0] and that's
an empty list.

Let's fix this little glitch.

Signed-off-by: Douglas Anderson <dianders@chromium.org>
Tested-by: Brian Norris <briannorris@chromium.org>
Reviewed-by: Brian Norris <briannorris@chromium.org>
---

(no changes since v1)

 tools/patman/main.py | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

Comments

Simon Glass July 5, 2022, 9:59 a.m. UTC | #1
On Fri, 1 Jul 2022 at 14:24, Douglas Anderson <dianders@chromium.org> wrote:
>
> The logic to insert an implicit command has always been a bit broken
> but it was masked by another bug fixed in the patch ("patman: Don't
> look at sys.argv when parsing settings"). Specifically, imagine that
> you're just calling patman like this:
>
>   patman -c1
>
> After the parse_known_args() command then the "-c1" will have been
> parsed and we'll have no command. The "rest" variable will be an empty
> list. Going into the logic you can see that nargs = 0. The implicit
> insertion of send ideally would create an argument list of:
>   ['-c1', 'send']
> ...but it doesn't because argv[:-0] is the same as argv[:0] and that's
> an empty list.
>
> Let's fix this little glitch.
>
> Signed-off-by: Douglas Anderson <dianders@chromium.org>
> Tested-by: Brian Norris <briannorris@chromium.org>
> Reviewed-by: Brian Norris <briannorris@chromium.org>
> ---
>
> (no changes since v1)
>
>  tools/patman/main.py | 4 +++-
>  1 file changed, 3 insertions(+), 1 deletion(-)

Reviewed-by: Simon Glass <sjg@chromium.org>
diff mbox series

Patch

diff --git a/tools/patman/main.py b/tools/patman/main.py
index 2a2ac4570931..336f4e439aa9 100755
--- a/tools/patman/main.py
+++ b/tools/patman/main.py
@@ -120,7 +120,9 @@  else:
     # No command, so insert it after the known arguments and before the ones
     # that presumably relate to the 'send' subcommand
     nargs = len(rest)
-    argv = argv[:-nargs] + ['send'] + rest
+    if nargs:
+        argv = argv[:-nargs]
+    argv = argv + ['send'] + rest
     args = parser.parse_args(argv)
 
 if __name__ != "__main__":