fix(fatfs): Fix esp_vfs_fat_unregister_path leak if esp_vfs_unregister fails

This commit is contained in:
Adam Múdry
2026-06-19 14:15:45 +02:00
parent f82a0593e0
commit 318d312607
+2 -2
View File
@@ -237,7 +237,7 @@ esp_err_t esp_vfs_fat_unregister_path(const char* base_path)
vfs_fat_ctx_t* fat_ctx = s_fat_ctxs[ctx]; vfs_fat_ctx_t* fat_ctx = s_fat_ctxs[ctx];
esp_err_t err = esp_vfs_unregister(fat_ctx->base_path); esp_err_t err = esp_vfs_unregister(fat_ctx->base_path);
if (err != ESP_OK) { if (err != ESP_OK) {
return err; ESP_LOGW(TAG, "esp_vfs_unregister failed (0x%x), cleaning up anyway", err); // should not happen, but if it does, we don't want to leak memory and keep the VFS in a broken state
} }
_lock_close(&fat_ctx->lock); _lock_close(&fat_ctx->lock);
@@ -251,7 +251,7 @@ esp_err_t esp_vfs_fat_unregister_path(const char* base_path)
free(fat_ctx->flags); free(fat_ctx->flags);
free(fat_ctx); free(fat_ctx);
s_fat_ctxs[ctx] = NULL; s_fat_ctxs[ctx] = NULL;
return ESP_OK; return err;
} }
esp_err_t esp_vfs_fat_info(const char* base_path, esp_err_t esp_vfs_fat_info(const char* base_path,