diff options
authorMike Frysinger <vapier@gentoo.org>2010-08-11 23:42:26 -0400
committerScott Wood <scottwood@freescale.com>2010-08-13 13:32:42 -0500
commit962ad59e25640e586e2bceabf67a628a27f8f508 (patch)
parent668a6b45915d10d75357f5b93f569bbf49ea2b06 (diff)
env_nand: return error when no device is found
Currently, if there is an error probing the NAND chip and the env is based in NAND, the readenv() function will use a NULL function pointer and thus jump to address 0. Here I just check for a non-zero value of blocksize as that shouldn't be zero when a valid device is found, but perhaps there is a better way for someone familiar with the NAND internals to suggest. Signed-off-by: Mike Frysinger <vapier@gentoo.org> Tested-by: Ben Gardiner <bengardiner@nanometrics.ca>
1 files changed, 2 insertions, 0 deletions
diff --git a/common/env_nand.c b/common/env_nand.c
index a5e103831..d38bcca1b 100644
--- a/common/env_nand.c
+++ b/common/env_nand.c
@@ -266,6 +266,8 @@ int readenv (size_t offset, u_char * buf)
u_char *char_ptr;
blocksize = nand_info[0].erasesize;
+ if (!blocksize)
+ return 1;
len = min(blocksize, CONFIG_ENV_SIZE);
while (amount_loaded < CONFIG_ENV_SIZE && offset < end) {