From d5307c5e08bf00d85c04917aafb5e2f58d56b1e5 Mon Sep 17 00:00:00 2001 From: Uladzimir Pylinski Date: Thu, 19 Feb 2015 17:16:15 +0000 Subject: SDIO. Added forgotten NULL pointer checks. git-svn-id: svn://svn.code.sf.net/p/chibios/svn/trunk@7695 35acf78f-673a-0410-8e92-d51de3d6d3f4 --- os/hal/src/sdc.c | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) (limited to 'os/hal/src') diff --git a/os/hal/src/sdc.c b/os/hal/src/sdc.c index bdd6bddea..260c7f861 100644 --- a/os/hal/src/sdc.c +++ b/os/hal/src/sdc.c @@ -308,6 +308,10 @@ static bool sdc_detect_bus_clk(SDCDriver *sdcp, sdcbusclk_t *clk) { *clk = SDC_CLK_25MHz; /* safe default */ + /* Use safe default when there is no space for data.*/ + if (NULL == scratchpad) + return HAL_SUCCESS; + if (sdc_lld_read_special(sdcp, scratchpad, 64, MMCSD_CMD_SWITCH, cmdarg)) return HAL_FAILED; @@ -623,9 +627,10 @@ bool sdcConnect(SDCDriver *sdcp) { goto failed; sdc_lld_set_data_clk(sdcp, clk); - /* Reads extended CSD if needed.*/ - if (SDC_MODE_CARDTYPE_MMC == (sdcp->cardmode & SDC_MODE_CARDTYPE_MASK) && - mmcsdGetSlice(sdcp->csd, MMCSD_CSD_MMC_CSD_STRUCTURE_SLICE) > 1) { + /* Reads extended CSD if needed and possible.*/ + if (NULL != scratchpad && + SDC_MODE_CARDTYPE_MMC == (sdcp->cardmode & SDC_MODE_CARDTYPE_MASK) && + mmcsdGetSlice(sdcp->csd, MMCSD_CSD_MMC_CSD_STRUCTURE_SLICE) > 1) { if(sdc_lld_read_special(sdcp, scratchpad, 512, MMCSD_CMD_SEND_EXT_CSD, 0)) goto failed; } -- cgit v1.2.3