From 0815f6ab8cdf7af92283f3b2907f2ef2f2de14cf Mon Sep 17 00:00:00 2001 From: Alexey Lapshin Date: Thu, 6 Jun 2024 15:18:30 +0700 Subject: [PATCH] fix(sdmmc): fix warnings found by GNU static analyzer --- components/sdmmc/sdmmc_io.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/components/sdmmc/sdmmc_io.c b/components/sdmmc/sdmmc_io.c index 86f471b8ac..ae0225b260 100644 --- a/components/sdmmc/sdmmc_io.c +++ b/components/sdmmc/sdmmc_io.c @@ -327,7 +327,9 @@ esp_err_t sdmmc_io_rw_extended(sdmmc_card_t* card, int func, return ESP_ERR_INVALID_ARG; } memset(card->host.dma_aligned_buffer, 0xcc, SDMMC_IO_BLOCK_SIZE); - memcpy(card->host.dma_aligned_buffer, datap, datalen); + if (arg & SD_ARG_CMD53_WRITE) { + memcpy(card->host.dma_aligned_buffer, datap, datalen); + } cmd.data = card->host.dma_aligned_buffer; cmd.buflen = SDMMC_IO_BLOCK_SIZE; } @@ -362,7 +364,8 @@ esp_err_t sdmmc_io_rw_extended(sdmmc_card_t* card, int func, err = sdmmc_send_cmd(card, &cmd); - if (datalen > 0 && cmd.data == card->host.dma_aligned_buffer) { + if (arg & SD_ARG_CMD53_READ && + datalen > 0 && cmd.data == card->host.dma_aligned_buffer) { assert(datalen <= SDMMC_IO_BLOCK_SIZE); memcpy(datap, card->host.dma_aligned_buffer, datalen); }