From a9f6042d41b11a5686ebc3195b7aa7e770d35f93 Mon Sep 17 00:00:00 2001 From: aditi_lonkar Date: Mon, 18 Jan 2021 11:36:53 +0530 Subject: [PATCH] fatfs: Fix some memory leak issues by coverity static analyzer. --- components/fatfs/src/ff.c | 7 ++++++- components/fatfs/vfs/vfs_fat.c | 4 ++-- 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/components/fatfs/src/ff.c b/components/fatfs/src/ff.c index d9833c72e1..4ef121af2c 100644 --- a/components/fatfs/src/ff.c +++ b/components/fatfs/src/ff.c @@ -5586,7 +5586,12 @@ FRESULT f_mkfs ( sz_buf = len / ss; /* Size of working buffer (sector) */ szb_buf = sz_buf * ss; /* Size of working buffer (byte) */ } - if (!buf || sz_buf == 0) return FR_NOT_ENOUGH_CORE; + if (!buf || sz_buf == 0) { + if(buf != NULL) { + ff_memfree(buf); + } + return FR_NOT_ENOUGH_CORE; + } /* Determine where the volume to be located (b_vol, sz_vol) */ if (FF_MULTI_PARTITION && part != 0) { diff --git a/components/fatfs/vfs/vfs_fat.c b/components/fatfs/vfs/vfs_fat.c index 5506b1158f..cd9c242059 100644 --- a/components/fatfs/vfs/vfs_fat.c +++ b/components/fatfs/vfs/vfs_fat.c @@ -628,12 +628,12 @@ static int vfs_fat_link(void* ctx, const char* n1, const char* n2) } fail3: f_close(pf2); - free(pf2); fail2: f_close(pf1); - free(pf1); fail1: free(buf); + free(pf2); + free(pf1); if (res != FR_OK) { ESP_LOGD(TAG, "%s: fresult=%d", __func__, res); errno = fresult_to_errno(res);