diff options
author | Nikolay Dimitrov | 2014-12-12 20:01:23 +0200 |
---|---|---|
committer | Tom Rini | 2014-12-29 16:31:24 -0500 |
commit | 3ef46a998a2f2c52e227246ac0438ca048ddfd09 (patch) | |
tree | aed0170b1d6c5148a5815566133739f97a91f1cc /common/hash.c | |
parent | d210718d9a184c5b00b7ee729e746ff8be5570bb (diff) |
Fix hash verification
Fix issue in parse_verify_sum() which swaps handling of env-var and *address.
Move hash_command() argc check earlier.
Cosmetic change on do_hash() variable declaration.
Improved help message for "hash" command.
Signed-off-by: Nikolay Dimitrov <picmaster@mail.bg>
Reviewed-by: Simon Glass <sjg@chromium.org>
Diffstat (limited to 'common/hash.c')
-rw-r--r-- | common/hash.c | 6 |
1 files changed, 2 insertions, 4 deletions
diff --git a/common/hash.c b/common/hash.c index 12d67594abe..aceabc5cadd 100644 --- a/common/hash.c +++ b/common/hash.c @@ -256,7 +256,7 @@ static int parse_verify_sum(struct hash_algo *algo, char *verify_str, env_var = 1; } - if (env_var) { + if (!env_var) { ulong addr; void *buf; @@ -347,7 +347,7 @@ int hash_command(const char *algo_name, int flags, cmd_tbl_t *cmdtp, int flag, { ulong addr, len; - if (argc < 2) + if ((argc < 2) || ((flags & HASH_FLAG_VERIFY) && (argc < 3))) return CMD_RET_USAGE; addr = simple_strtoul(*argv++, NULL, 16); @@ -380,8 +380,6 @@ int hash_command(const char *algo_name, int flags, cmd_tbl_t *cmdtp, int flag, #else if (0) { #endif - if (!argc) - return CMD_RET_USAGE; if (parse_verify_sum(algo, *argv, vsum, flags & HASH_FLAG_ENV)) { printf("ERROR: %s does not contain a valid " |