Message ID | 1383827988-8512-1-git-send-email-trini@ti.com |
---|---|
State | Accepted |
Delegated to: | Tom Rini |
Headers | show |
On Thu, Nov 07, 2013 at 07:39:48AM -0500, Tom Rini wrote: > 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> Applied to u-boot/master, thanks!
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; } }
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> --- common/hash.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-)