summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHauke Mehrtens <hauke@hauke-m.de>2013-02-16 15:19:24 +0000
committerHauke Mehrtens <hauke@hauke-m.de>2013-02-16 15:19:24 +0000
commita21ba013f5461977fa55add0d875dc2b90851f58 (patch)
tree84510c40110a41744f8bb5682dfd38ef886f3792
parent283bff02a2d715dd3f1cd80f7aa536d77beebc87 (diff)
downloadmtk-20170518-a21ba013f5461977fa55add0d875dc2b90851f58.zip
mtk-20170518-a21ba013f5461977fa55add0d875dc2b90851f58.tar.gz
mtk-20170518-a21ba013f5461977fa55add0d875dc2b90851f58.tar.bz2
brcm47xx: handle return values of cfe_env_get() correctly.
This closes #12746. SVN-Revision: 35622
-rw-r--r--target/linux/brcm47xx/patches-3.6/820-wgt634u-nvram-fix.patch9
1 files changed, 5 insertions, 4 deletions
diff --git a/target/linux/brcm47xx/patches-3.6/820-wgt634u-nvram-fix.patch b/target/linux/brcm47xx/patches-3.6/820-wgt634u-nvram-fix.patch
index ef527c7..2c135a1 100644
--- a/target/linux/brcm47xx/patches-3.6/820-wgt634u-nvram-fix.patch
+++ b/target/linux/brcm47xx/patches-3.6/820-wgt634u-nvram-fix.patch
@@ -280,20 +280,21 @@ out the configuration than the in kernel cfe config reader.
/* TODO: when nvram is on nand flash check for bad blocks first. */
off = FLASH_MIN;
while (off <= lim) {
-@@ -181,6 +203,12 @@ int bcm47xx_nvram_getenv(char *name, cha
+@@ -181,6 +203,13 @@ int bcm47xx_nvram_getenv(char *name, cha
return err;
}
+ if (cfe_env) {
+ value = cfe_env_get(nvram_buf, name);
-+ snprintf(val, val_len, "%s", value);
-+ return 0;
++ if (!value)
++ return -ENOENT;
++ return snprintf(val, val_len, "%s", value);
+ }
+
/* Look for name=value and return value */
var = &nvram_buf[sizeof(struct nvram_header)];
end = nvram_buf + sizeof(nvram_buf) - 2;
-@@ -209,6 +237,9 @@ char *nvram_get(const char *name)
+@@ -209,6 +238,9 @@ char *nvram_get(const char *name)
if (!nvram_buf[0])
nvram_init();