From 2bc2fe14523ae2dc0478031b62648b10b64b7eba Mon Sep 17 00:00:00 2001 From: TuxSH Date: Sat, 19 May 2018 01:33:07 +0200 Subject: [PATCH] Use memcpy instead of raw casts in sdmmc.c --- fusee/fusee-secondary/src/sdmmc.c | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/fusee/fusee-secondary/src/sdmmc.c b/fusee/fusee-secondary/src/sdmmc.c index a6745ef58..d71b2a2e3 100644 --- a/fusee/fusee-secondary/src/sdmmc.c +++ b/fusee/fusee-secondary/src/sdmmc.c @@ -1274,7 +1274,7 @@ static int sdmmc_handle_cpu_transfer(struct mmc *mmc, uint16_t blocks, bool is_w // Handle unaligned buffers uint32_t w; uint8_t *data = (uint8_t *)buffer; - w = data[0] | (data[1] << 8) | (data[2] << 16) | (data[3] << 24); + memcpy(&w, data, 4); mmc->regs->buffer = w; } else { mmc->regs->buffer = *buffer; @@ -1284,10 +1284,7 @@ static int sdmmc_handle_cpu_transfer(struct mmc *mmc, uint16_t blocks, bool is_w // Handle unaligned buffers uint32_t w = mmc->regs->buffer; uint8_t *data = (uint8_t *)buffer; - data[0] = w & 0xFF; - data[1] = (w >> 8) & 0xFF; - data[2] = (w >> 16) & 0xFF; - data[3] = (w >> 24) & 0xFF; + memcpy(&w, data, 4); } else { *buffer = mmc->regs->buffer; }