Fix initrd length corruption in bootm command.
authorWolfgang Denk <wd@denx.de>
Fri, 4 May 2007 08:02:33 +0000 (10:02 +0200)
committerWolfgang Denk <wd@denx.de>
Fri, 4 May 2007 08:02:33 +0000 (10:02 +0200)
When using FDT Images, the length of an inital ramdisk was
overwritten (bug introduced by commit 87a449c8, 22 Aug 2006).

Patches by Timur Tabi & Johns Daniel.

Signed-off-by: Wolfgang Denk <wd@denx.de>
common/cmd_bootm.c

index 32c29e55a37bc829d16226590d94f63adc934ef0..a6499e8dd9bc3fc853606567c847d0a064f02e55 100644 (file)
@@ -779,9 +779,8 @@ do_bootm_linux (cmd_tbl_t *cmdtp, int flag,
 
                        checksum = ntohl(hdr->ih_dcrc);
                        addr = (ulong)((uchar *)(hdr) + sizeof(image_header_t));
-                       len = ntohl(hdr->ih_size);
 
-                       if(checksum != crc32(0, (uchar *)addr, len)) {
+                       if(checksum != crc32(0, (uchar *)addr, ntohl(hdr->ih_size))) {
                                printf("ERROR: Flat Device Tree checksum is invalid\n");
                                return;
                        }