diff mbox

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

Message ID 1332842040-21506-1-git-send-email-agust@denx.de
State Accepted
Commit 7e71dc68846647f387a74d50924da1218e197089
Delegated to: Anatolij Gustschin
Headers show

Commit Message

Anatolij Gustschin March 27, 2012, 9:54 a.m. UTC
From: Tim Kientzle <kientzle@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@freebsd.org>
Signed-off-by: Anatolij Gustschin <agust@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 mbox

Patch

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;