diff options
author | Asutosh Das <asutoshd@codeaurora.org> | 2013-10-07 14:53:32 +0530 |
---|---|---|
committer | Subhash Jadavani <subhashj@codeaurora.org> | 2016-05-31 15:25:55 -0700 |
commit | 5355845e05c8cffdacd04702210c860fe6cf650d (patch) | |
tree | a6299d697388a9fd15addd1b5e8bf87929f78dd1 /drivers | |
parent | 0c758bb6b206df527df06eb2e2fb2a784b063148 (diff) |
mmc: core: Check for NULL pointer access in ioctl
Added checks to check if card is NULL before accessing it.
CRs-Fixed: 548450
Change-Id: Idc005b8420a78b3566164102fbeaa243a8e73c7c
Signed-off-by: Asutosh Das <asutoshd@codeaurora.org>
[subhashj@codeaurora.org: fixed trivial merge conflicts]
Signed-off-by: Subhash Jadavani <subhashj@codeaurora.org>
Diffstat (limited to 'drivers')
-rw-r--r-- | drivers/mmc/card/block.c | 5 | ||||
-rw-r--r-- | drivers/mmc/core/core.c | 4 |
2 files changed, 6 insertions, 3 deletions
diff --git a/drivers/mmc/card/block.c b/drivers/mmc/card/block.c index 2b0fefc1a7bf..0642ce0a1a44 100644 --- a/drivers/mmc/card/block.c +++ b/drivers/mmc/card/block.c @@ -868,9 +868,8 @@ static int mmc_blk_ioctl_cmd(struct block_device *bdev, int err = 0, ioc_err = 0; idata = mmc_blk_ioctl_copy_from_user(ic_ptr); - if (IS_ERR(idata)) + if (IS_ERR_OR_NULL(idata)) return PTR_ERR(idata); - md = mmc_blk_get(bdev->bd_disk); if (!md) { err = -EINVAL; @@ -878,7 +877,7 @@ static int mmc_blk_ioctl_cmd(struct block_device *bdev, } card = md->queue.card; - if (IS_ERR(card)) { + if (IS_ERR_OR_NULL(card)) { err = PTR_ERR(card); goto cmd_done; } diff --git a/drivers/mmc/core/core.c b/drivers/mmc/core/core.c index 0b0f1821f5fb..26ae35e9d023 100644 --- a/drivers/mmc/core/core.c +++ b/drivers/mmc/core/core.c @@ -876,6 +876,10 @@ void mmc_set_data_timeout(struct mmc_data *data, const struct mmc_card *card) { unsigned int mult; + if (!card) { + WARN_ON(1); + return; + } /* * SDIO cards only define an upper 1 s limit on access. */ |