diff options
author | Lei Wen <leiwen@marvell.com> | 2011-02-15 16:56:40 +0800 |
---|---|---|
committer | Wolfgang Denk <wd@denx.de> | 2011-04-12 22:58:35 +0200 |
commit | b16aadf411280fc426d7488ddd8a5b2038b7194d (patch) | |
tree | 230cf807873574dcd0e231488a1a64a8fc721d11 /disk/part.c | |
parent | 9eeaa8e66ce1b34ddac9ebb1f31043f473a7c176 (diff) | |
download | u-boot-b16aadf411280fc426d7488ddd8a5b2038b7194d.tar.gz u-boot-b16aadf411280fc426d7488ddd8a5b2038b7194d.tar.bz2 u-boot-b16aadf411280fc426d7488ddd8a5b2038b7194d.zip |
disk/part.c: fix potential stack overflow bug
If the param pass to get_dev is not the one defined in the block_drvr,
it could make uboot becomes unstable, for it would continue run after
search complete the block_drvr table.
Signed-off-by: Lei Wen <leiwen@marvell.com>
Diffstat (limited to 'disk/part.c')
-rw-r--r-- | disk/part.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/disk/part.c b/disk/part.c index 13723f23b3..f07a17feb8 100644 --- a/disk/part.c +++ b/disk/part.c @@ -84,7 +84,7 @@ block_dev_desc_t *get_dev(char* ifname, int dev) #ifdef CONFIG_NEEDS_MANUAL_RELOC name += gd->reloc_off; #endif - while (name) { + while (drvr->name) { name = drvr->name; reloc_get_dev = drvr->get_dev; #ifdef CONFIG_NEEDS_MANUAL_RELOC |