diff options
| author | Tom Rini <trini@ti.com> | 2013-11-07 07:39:48 -0500 | 
|---|---|---|
| committer | Tom Rini <trini@ti.com> | 2013-11-25 10:41:51 -0500 | 
| commit | 4b756b013ae0159d77d34981b57f8590f8dba2ee (patch) | |
| tree | e60f23245c32e841a5f92b7d9ca7d29a6fc88159 /common/hash.c | |
| parent | c2e5e802ecb7ab668ce9911b210ed68c804b349f (diff) | |
| download | olio-uboot-2014.01-4b756b013ae0159d77d34981b57f8590f8dba2ee.tar.xz olio-uboot-2014.01-4b756b013ae0159d77d34981b57f8590f8dba2ee.zip | |
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/hash.c')
| -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 722c40b3f..872cd8542 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;  		}  	} |