Sfoglia il codice sorgente

cmd: env: Fix CRC calculation for 'env export -c -s'

Fix failure to reimport exported checksummed, size constrained data block.

'env export -c' command ignores optional -s size argument when calculating checksum causing subsequent 'env import -c' to fail.

Signed-off-by: Neil Stainton <nstainton@asl-control.co.uk>
Neil Stainton 6 anni fa
parent
commit
d71b029d1d
1 ha cambiato i file con 2 aggiunte e 1 eliminazioni
  1. 2 1
      cmd/nvedit.c

+ 2 - 1
cmd/nvedit.c

@@ -987,7 +987,8 @@ NXTARG:		;
 	}
 
 	if (chk) {
-		envp->crc = crc32(0, envp->data, ENV_SIZE);
+		envp->crc = crc32(0, envp->data,
+				size ? size - offsetof(env_t, data) : ENV_SIZE);
 #ifdef CONFIG_ENV_ADDR_REDUND
 		envp->flags = ACTIVE_FLAG;
 #endif