diff options
author | Igor Opaniuk <igor.opaniuk@gmail.com> | 2024-02-07 01:01:32 +0100 |
---|---|---|
committer | Tom Rini <trini@konsulko.com> | 2024-02-13 15:38:11 -0500 |
commit | 348ea878508de90fdcc5a051cabe05d190e40e35 (patch) | |
tree | 32a3fc2151c5b462569a70238ef707bbc4b02beb /cmd/hash.c | |
parent | ef473d541d8a5453ce66b3c72f7e5577a7ea6aff (diff) |
cmd: hash: fix param count check
Add correct check for parameter count.
This fixes this issue when `hash` cmd is invoked without params:
=> hash
data abort
pc : [<bf739204>] lr : [<ba6effa8>]
reloc pc : [<60019204>] lr : [<5afcffa8>]
sp : ba6dd9c8 ip : bf7391f0 fp : bf74ec14
r10: 00000001 r9 : ba6dfea0 r8 : bf7ea030
r7 : 00000000 r6 : ba6effa8 r5 : 00000000 r4 : ffffffff
r3 : bf7c257c r2 : 00000001 r1 : 00000000 r0 : bf7e6e34
Flags: nZCv IRQs off FIQs on Mode SVC_32
Code: e5934004 e1a0e003 e59f3050 e2444001 (e5f4c001)
Resetting CPU ...
resetting ...
Signed-off-by: Igor Opaniuk <igor.opaniuk@gmail.com>
Diffstat (limited to 'cmd/hash.c')
-rw-r--r-- | cmd/hash.c | 19 |
1 files changed, 10 insertions, 9 deletions
diff --git a/cmd/hash.c b/cmd/hash.c index e163cd6774..5534a735fa 100644 --- a/cmd/hash.c +++ b/cmd/hash.c @@ -14,15 +14,22 @@ #include <hash.h> #include <linux/ctype.h> +#if IS_ENABLED(CONFIG_HASH_VERIFY) +#define HARGS 6 +#else +#define HARGS 5 +#endif + static int do_hash(struct cmd_tbl *cmdtp, int flag, int argc, char *const argv[]) { char *s; int flags = HASH_FLAG_ENV; -#ifdef CONFIG_HASH_VERIFY - if (argc < 4) + if (argc < (HARGS - 1)) return CMD_RET_USAGE; + +#if IS_ENABLED(CONFIG_HASH_VERIFY) if (!strcmp(argv[1], "-v")) { flags |= HASH_FLAG_VERIFY; argc--; @@ -37,18 +44,12 @@ static int do_hash(struct cmd_tbl *cmdtp, int flag, int argc, return hash_command(*argv, flags, cmdtp, flag, argc - 1, argv + 1); } -#ifdef CONFIG_HASH_VERIFY -#define HARGS 6 -#else -#define HARGS 5 -#endif - U_BOOT_CMD( hash, HARGS, 1, do_hash, "compute hash message digest", "algorithm address count [[*]hash_dest]\n" " - compute message digest [save to env var / *address]" -#ifdef CONFIG_HASH_VERIFY +#if IS_ENABLED(CONFIG_HASH_VERIFY) "\nhash -v algorithm address count [*]hash\n" " - verify message digest of memory area to immediate value, \n" " env var or *address" |