Parcourir la source

nvs: fix out of bounds array access in host test

Ivan Grokhotkov il y a 5 ans
Parent
commit
d2526e6dda
1 fichiers modifiés avec 2 ajouts et 1 suppressions
  1. 2 1
      components/nvs_flash/test_nvs_host/spi_flash_emulation.cpp

+ 2 - 1
components/nvs_flash/test_nvs_host/spi_flash_emulation.cpp

@@ -71,10 +71,11 @@ static size_t blockEraseTime = 37142;
 
 static size_t timeInterp(uint32_t bytes, size_t* lut)
 {
+    const int lut_size = sizeof(readTimes)/sizeof(readTimes[0]);
     int lz = __builtin_clz(bytes / 4);
     int log_size = 32 - lz;
     size_t x2 = 1 << (log_size + 2);
-    size_t y2 = lut[log_size];
+    size_t y2 = lut[std::min(log_size, lut_size - 1)];
     size_t x1 = 1 << (log_size + 1);
     size_t y1 = lut[log_size - 1];
     return (bytes - x1) * (y2 - y1) / (x2 - x1) + y1;