From a21ba013f5461977fa55add0d875dc2b90851f58 Mon Sep 17 00:00:00 2001
From: Hauke Mehrtens <hauke@hauke-m.de>
Date: Sat, 16 Feb 2013 15:19:24 +0000
Subject: [PATCH] brcm47xx: handle return values of cfe_env_get() correctly.

This closes #12746.

SVN-Revision: 35622
---
 .../brcm47xx/patches-3.6/820-wgt634u-nvram-fix.patch     | 9 +++++----
 1 file 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 ef527c701e..2c135a1115 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();
  
-- 
GitLab