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>
This commit is contained in:
Gerhard Sittig 2013-06-05 14:51:05 +02:00 committed by Wolfgang Denk
parent e1208c2fe5
commit 186f9c130f
1 changed files with 6 additions and 2 deletions

View File

@ -209,6 +209,7 @@ static int read_eeprom(void)
int mac_read_from_eeprom(void) int mac_read_from_eeprom(void)
{ {
const u8 *mac; const u8 *mac;
const char *mac_txt;
if (read_eeprom()) { if (read_eeprom()) {
printf("I2C EEPROM read failed.\n"); printf("I2C EEPROM read failed.\n");
@ -230,8 +231,11 @@ int mac_read_from_eeprom(void)
if (mac && is_valid_ether_addr(mac)) { if (mac && is_valid_ether_addr(mac)) {
eth_setenv_enetaddr("ethaddr", mac); eth_setenv_enetaddr("ethaddr", mac);
printf("DIAG: %s() MAC value [%s]\n", mac_txt = getenv("ethaddr");
__func__, getenv("ethaddr")); if (mac_txt)
printf("DIAG: MAC value [%s]\n", mac_txt);
else
printf("DIAG: failed to setup MAC env\n");
} }
return 0; return 0;