Patchwork [U-Boot,v2,1/7] ac14xx: fix a potential NULL deref in diagnostics

login
register
mail settings
Submitter Gerhard Sittig
Date June 5, 2013, 12:51 p.m.
Message ID <1370436671-12422-2-git-send-email-gsi@denx.de>
Download mbox | patch
Permalink /patch/249027/
State Accepted
Delegated to: Wolfgang Denk
Headers show

Comments

Gerhard Sittig - June 5, 2013, 12:51 p.m.
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>
---
 board/ifm/ac14xx/ac14xx.c |    8 ++++++--
 1 file changed, 6 insertions(+), 2 deletions(-)
Wolfgang Denk - June 24, 2013, 8:25 p.m.
Dear Gerhard Sittig,

In message <1370436671-12422-2-git-send-email-gsi@denx.de> you wrote:
> 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>
> ---
>  board/ifm/ac14xx/ac14xx.c |    8 ++++++--
>  1 file changed, 6 insertions(+), 2 deletions(-)

Applied to u-boot-mpc5xxx, thanks.

Best regards,

Wolfgang Denk

Patch

diff --git a/board/ifm/ac14xx/ac14xx.c b/board/ifm/ac14xx/ac14xx.c
index 7442591..f200b45 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;