mmc: check find_mmc_device return value
find_mmc_device returns NULL if an invalid device number is specified. Check for this to avoid dereferencing NULL pointers. Signed-off-by: Rabin Vincent <rabin@rab.in>
This commit is contained in:
parent
ac0865ff33
commit
e85649c7e6
2 changed files with 10 additions and 1 deletions
|
@ -149,6 +149,9 @@ int do_mmcops(cmd_tbl_t *cmdtp, int flag, int argc, char *argv[])
|
|||
int dev = simple_strtoul(argv[2], NULL, 10);
|
||||
struct mmc *mmc = find_mmc_device(dev);
|
||||
|
||||
if (!mmc)
|
||||
return 1;
|
||||
|
||||
mmc_init(mmc);
|
||||
|
||||
return 0;
|
||||
|
@ -175,6 +178,9 @@ int do_mmcops(cmd_tbl_t *cmdtp, int flag, int argc, char *argv[])
|
|||
u32 blk = simple_strtoul(argv[4], NULL, 16);
|
||||
struct mmc *mmc = find_mmc_device(dev);
|
||||
|
||||
if (!mmc)
|
||||
return 1;
|
||||
|
||||
printf("\nMMC read: dev # %d, block # %d, count %d ... ",
|
||||
dev, blk, cnt);
|
||||
|
||||
|
@ -197,6 +203,9 @@ int do_mmcops(cmd_tbl_t *cmdtp, int flag, int argc, char *argv[])
|
|||
|
||||
int blk = simple_strtoul(argv[4], NULL, 16);
|
||||
|
||||
if (!mmc)
|
||||
return 1;
|
||||
|
||||
printf("\nMMC write: dev # %d, block # %d, count %d ... ",
|
||||
dev, blk, cnt);
|
||||
|
||||
|
|
|
@ -846,7 +846,7 @@ block_dev_desc_t *mmc_get_dev(int dev)
|
|||
{
|
||||
struct mmc *mmc = find_mmc_device(dev);
|
||||
|
||||
return &mmc->block_dev;
|
||||
return mmc ? &mmc->block_dev : NULL;
|
||||
}
|
||||
|
||||
int mmc_init(struct mmc *mmc)
|
||||
|
|
Loading…
Reference in a new issue