Procházet zdrojové kódy

Merge branch 'fix/vfs_fat_info_overflow' into 'master'

fatfs: Fix possible integer overflow in esp_vfs_fat_info()

Closes IDF-4958

See merge request espressif/esp-idf!18191
Ivan Grokhotkov před 3 roky
rodič
revize
341162bb3d
1 změnil soubory, kde provedl 2 přidání a 2 odebrání
  1. 2 2
      components/fatfs/vfs/vfs_fat.c

+ 2 - 2
components/fatfs/vfs/vfs_fat.c

@@ -222,8 +222,8 @@ esp_err_t esp_vfs_fat_info(const char* base_path,
         errno = fresult_to_errno(res);
         return ESP_FAIL;
     }
-    uint64_t total_sectors = (fs->n_fatent - 2) * fs->csize;
-    uint64_t free_sectors = free_clusters * fs->csize;
+    uint64_t total_sectors = ((uint64_t)(fs->n_fatent - 2)) * fs->csize;
+    uint64_t free_sectors = ((uint64_t)free_clusters) * fs->csize;
 
     // Assuming the total size is < 4GiB, should be true for SPI Flash
     if (out_total_bytes != NULL) {