diff options
author | Tim Kientzle <kientzle@freebsd.org> | 2012-03-27 11:43:25 +0200 |
---|---|---|
committer | Anatolij Gustschin <agust@denx.de> | 2012-03-27 11:46:33 +0200 |
commit | 7e71dc68846647f387a74d50924da1218e197089 (patch) | |
tree | 691fe56de56eaaf3a659ee46fa123e8e7089efb9 /disk | |
parent | d8d265999b65afe289f7d8d8860ed492b1ff77d4 (diff) | |
download | u-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.c | 3 |
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; |