summaryrefslogtreecommitdiffstats
path: root/disk
diff options
context:
space:
mode:
authorTim Kientzle <kientzle@freebsd.org>2012-03-27 11:43:25 +0200
committerAnatolij Gustschin <agust@denx.de>2012-03-27 11:46:33 +0200
commit7e71dc68846647f387a74d50924da1218e197089 (patch)
tree691fe56de56eaaf3a659ee46fa123e8e7089efb9 /disk
parentd8d265999b65afe289f7d8d8860ed492b1ff77d4 (diff)
downloadu-boot-7e71dc68846647f387a74d50924da1218e197089.tar.gz
u-boot-7e71dc68846647f387a74d50924da1218e197089.tar.xz
u-boot-7e71dc68846647f387a74d50924da1218e197089.zip
disk/part.c: Fix device enumeration through API
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>
Diffstat (limited to 'disk')
-rw-r--r--disk/part.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/disk/part.c b/disk/part.c
index f07a17feb8..8ca5d4bdfc 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;