psram: fix esp32/esp_psram_impl_quad memcpy out of bounds issue

This commit is contained in:
Armando 2022-06-10 12:28:36 +08:00
parent cdad8a02fe
commit 26df228b11

View File

@ -355,7 +355,9 @@ static int psram_cmd_config(psram_spi_num_t spi_num, psram_cmd_t* pInData)
// Load send buffer // Load send buffer
int len = (pInData->txDataBitLen + 31) / 32; int len = (pInData->txDataBitLen + 31) / 32;
if (p_tx_val != NULL) { if (p_tx_val != NULL) {
memcpy((void*)SPI_W0_REG(spi_num), p_tx_val, len * 4); for (int i = 0; i < len; i++) {
WRITE_PERI_REG(SPI_W0_REG(spi_num), p_tx_val[i]);
}
} }
// Set data send buffer length.Max data length 64 bytes. // Set data send buffer length.Max data length 64 bytes.
SET_PERI_REG_BITS(SPI_MOSI_DLEN_REG(spi_num), SPI_USR_MOSI_DBITLEN, (pInData->txDataBitLen - 1), SET_PERI_REG_BITS(SPI_MOSI_DLEN_REG(spi_num), SPI_USR_MOSI_DBITLEN, (pInData->txDataBitLen - 1),