[U-Boot] [PATCH v2] disk/part.c: Fix device enumeration through API

Anatolij Gustschin agust at denx.de
Tue Mar 27 11:54:00 CEST 2012


From: Tim Kientzle <kientzle at freebsd.org>

The patch below fixes device enumeration through the U-Boot API.

Device enumeration crashes when the system in question doesn't
have any RAM mapped to address zero (I discovered this on a
BeagleBone board), since the enumeration calls get_dev with a
NULL ifname sometimes which then gets passed down to strncmp().

This fix simply ensures that get_dev returns NULL when invoked
with a NULL ifname.

Signed-off-by: Tim Kientzle <kientzle at freebsd.org>
Signed-off-by: Anatolij Gustschin <agust at denx.de>
---
v2:
 - resend with fixed whitespace errors and properly added
   commit log.

I've queued this patch in my staging branch. Thanks!

Anatolij

 disk/part.c |    3 +++
 1 files changed, 3 insertions(+), 0 deletions(-)

diff --git a/disk/part.c b/disk/part.c
index f07a17f..8ca5d4b 100644
--- a/disk/part.c
+++ b/disk/part.c
@@ -80,6 +80,9 @@ block_dev_desc_t *get_dev(char* ifname, int dev)
 	block_dev_desc_t* (*reloc_get_dev)(int dev);
 	char *name;
 
+	if (!ifname)
+		return NULL;
+
 	name = drvr->name;
 #ifdef CONFIG_NEEDS_MANUAL_RELOC
 	name += gd->reloc_off;
-- 
1.7.1



More information about the U-Boot mailing list