Ver código fonte

psram: fix esp32/esp_psram_impl_quad memcpy out of bounds issue

Armando 3 anos atrás
pai
commit
26df228b11
1 arquivos alterados com 3 adições e 1 exclusões
  1. 3 1
      components/esp_psram/esp32/esp_psram_impl_quad.c

+ 3 - 1
components/esp_psram/esp32/esp_psram_impl_quad.c

@@ -355,7 +355,9 @@ static int psram_cmd_config(psram_spi_num_t spi_num, psram_cmd_t* pInData)
         // Load send buffer
         int len = (pInData->txDataBitLen + 31) / 32;
         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_PERI_REG_BITS(SPI_MOSI_DLEN_REG(spi_num), SPI_USR_MOSI_DBITLEN, (pInData->txDataBitLen - 1),