diff options
author | Tom Rini <trini@ti.com> | 2013-11-07 12:39:48 (GMT) |
---|---|---|
committer | Tom Rini <trini@ti.com> | 2013-11-25 15:41:51 (GMT) |
commit | 4b756b013ae0159d77d34981b57f8590f8dba2ee (patch) | |
tree | e60f23245c32e841a5f92b7d9ca7d29a6fc88159 /common | |
parent | c2e5e802ecb7ab668ce9911b210ed68c804b349f (diff) | |
download | u-boot-4b756b013ae0159d77d34981b57f8590f8dba2ee.tar.xz |
hash.c: Correct non-hash subcommand crc32 addr-save support
In the case of not having CONFIG_CMD_HASH but having CONFIG_CMD_CRC32
enabled (and not CONFIG_CRC32_VERIFY), we end up in this part of the
code path on hash_command(). However, we will only have exactly 3 args
here, and 3 > 3 is false, and we will not try and store the hash at the
address given as arg #3. The next problem however is that we've been
moving argv around so the third value is now in argv[0] not argv[3].
Confirmed on AM335x Beaglebone White.
Signed-off-by: Tom Rini <trini@ti.com>
Diffstat (limited to 'common')
-rw-r--r-- | common/hash.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/common/hash.c b/common/hash.c index 722c40b..872cd85 100644 --- a/common/hash.c +++ b/common/hash.c @@ -325,8 +325,8 @@ int hash_command(const char *algo_name, int flags, cmd_tbl_t *cmdtp, int flag, printf("CRC32 for %08lx ... %08lx ==> %08lx\n", addr, addr + len - 1, crc); - if (argc > 3) { - ptr = (ulong *)simple_strtoul(argv[3], NULL, 16); + if (argc >= 3) { + ptr = (ulong *)simple_strtoul(argv[0], NULL, 16); *ptr = crc; } } |