From: Tom Rini Date: Thu, 7 Nov 2013 12:39:48 +0000 (-0500) Subject: hash.c: Correct non-hash subcommand crc32 addr-save support X-Git-Tag: v2014.01-rc1~25 X-Git-Url: https://git.sur5r.net/?a=commitdiff_plain;h=4b756b013ae0159d77d34981b57f8590f8dba2ee;p=u-boot 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 --- diff --git a/common/hash.c b/common/hash.c index 722c40b3f3..872cd85428 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; } }