Currently pci command ignores invalid cmdline arguments and do something.
Add checks that all passed arguments were processed.

Signed-off-by: Pali Rohár <p...@kernel.org>
---
 cmd/pci.c | 5 +++++
 1 file changed, 5 insertions(+)

diff --git a/cmd/pci.c b/cmd/pci.c
index 53edf0d90010..8d2c0c4b43dd 100644
--- a/cmd/pci.c
+++ b/cmd/pci.c
@@ -523,7 +523,12 @@ static int do_pci(struct cmd_tbl *cmdtp, int flag, int 
argc, char *const argv[])
                        }
                        if (argc > 2 || (argc > 1 && cmd != 'r' && argv[1][0] 
!= 's')) {
                                busnum = hextoul(argv[argc - 1], NULL);
+                               argc--;
                        }
+                       if (cmd == 'r' && argc > 2)
+                               goto usage;
+                       else if (cmd != 'r' && (argc > 2 || (argc == 2 && 
argv[1][0] != 's')))
+                               goto usage;
                }
                ret = uclass_get_device_by_seq(UCLASS_PCI, busnum, &bus);
                if (ret) {
-- 
2.20.1

Reply via email to