diff mbox series

[3/4] pci: Add checks for valid cmdline arguments

Message ID 20220117153840.31173-4-pali@kernel.org
State Accepted
Commit 6850a5a8e24fc2345348dd9a160abd7a8e7f1b72
Delegated to: Tom Rini
Headers show
Series pci: Extend 'pci' and 'pci regions' commands | expand

Commit Message

Pali Rohár Jan. 17, 2022, 3:38 p.m. UTC
Currently pci command ignores invalid cmdline arguments and do something.
Add checks that all passed arguments were processed.

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

Comments

Stefan Roese Jan. 25, 2022, 3:53 p.m. UTC | #1
On 1/17/22 16:38, Pali Rohár wrote:
> Currently pci command ignores invalid cmdline arguments and do something.
> Add checks that all passed arguments were processed.
> 
> Signed-off-by: Pali Rohár <pali@kernel.org>

Reviewed-by: Stefan Roese <sr@denx.de>

Thanks,
Stefan

> ---
>   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) {

Viele Grüße,
Stefan Roese
Tom Rini Jan. 29, 2022, 6:48 p.m. UTC | #2
On Mon, Jan 17, 2022 at 04:38:39PM +0100, Pali Rohár wrote:

> Currently pci command ignores invalid cmdline arguments and do something.
> Add checks that all passed arguments were processed.
> 
> Signed-off-by: Pali Rohár <pali@kernel.org>
> Reviewed-by: Stefan Roese <sr@denx.de>

Applied to u-boot/master, thanks!
diff mbox series

Patch

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) {