diff options
| author | Gerhard Sittig <gsi@denx.de> | 2013-06-05 14:51:05 +0200 | 
|---|---|---|
| committer | Wolfgang Denk <wd@denx.de> | 2013-06-24 22:24:29 +0200 | 
| commit | 186f9c130faa3e228b0db7f45de359748f78b1c3 (patch) | |
| tree | e61476e4d6495ff9f025b70a3035b72971f98c32 | |
| parent | e1208c2fe5e07f9a248cfbf9bbb212aa34ad2806 (diff) | |
| download | olio-uboot-2014.01-186f9c130faa3e228b0db7f45de359748f78b1c3.tar.xz olio-uboot-2014.01-186f9c130faa3e228b0db7f45de359748f78b1c3.zip | |
ac14xx: fix a potential NULL deref in diagnostics
getenv() immediately after setenv() may perfectly legally return NULL, so
make sure to not deference an invalid pointer when creating diagnostic output
Signed-off-by: Gerhard Sittig <gsi@denx.de>
| -rw-r--r-- | board/ifm/ac14xx/ac14xx.c | 8 | 
1 files changed, 6 insertions, 2 deletions
| diff --git a/board/ifm/ac14xx/ac14xx.c b/board/ifm/ac14xx/ac14xx.c index 74425912d..f200b45f1 100644 --- a/board/ifm/ac14xx/ac14xx.c +++ b/board/ifm/ac14xx/ac14xx.c @@ -209,6 +209,7 @@ static int read_eeprom(void)  int mac_read_from_eeprom(void)  {  	const u8 *mac; +	const char *mac_txt;  	if (read_eeprom()) {  		printf("I2C EEPROM read failed.\n"); @@ -230,8 +231,11 @@ int mac_read_from_eeprom(void)  	if (mac && is_valid_ether_addr(mac)) {  		eth_setenv_enetaddr("ethaddr", mac); -		printf("DIAG: %s() MAC value [%s]\n", -			__func__, getenv("ethaddr")); +		mac_txt = getenv("ethaddr"); +		if (mac_txt) +			printf("DIAG: MAC value [%s]\n", mac_txt); +		else +			printf("DIAG: failed to setup MAC env\n");  	}  	return 0; |