From 36eccee213c5e8c992903f16d67f32c7f6ad41fa Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Quentin=20Th=C3=A9rond?= Date: Tue, 25 Jul 2017 14:14:03 +0200 Subject: [PATCH 1/3] i2s: fix leak in i2s_create_dma_queue if we have a malloc issue. --- components/driver/i2s.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/components/driver/i2s.c b/components/driver/i2s.c index f78745f32..1816a55e8 100644 --- a/components/driver/i2s.c +++ b/components/driver/i2s.c @@ -435,7 +435,7 @@ static i2s_dma_t *i2s_create_dma_queue(i2s_port_t i2s_num, int dma_buf_count, in dma->buf = (char **)malloc(sizeof(char*) * dma_buf_count); if (dma->buf == NULL) { ESP_LOGE(I2S_TAG, "Error malloc dma buffer pointer"); - + free(dma); return NULL; } memset(dma->buf, 0, sizeof(char*) * dma_buf_count); From 88e71a680ea3a50cbc9eabab6981baa86ef69ce6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Quentin=20Th=C3=A9rond?= Date: Tue, 25 Jul 2017 14:14:23 +0200 Subject: [PATCH 2/3] vfs: fix double free. --- components/fatfs/src/vfs_fat_spiflash.c | 1 + 1 file changed, 1 insertion(+) diff --git a/components/fatfs/src/vfs_fat_spiflash.c b/components/fatfs/src/vfs_fat_spiflash.c index 03682e564..b9f80354a 100644 --- a/components/fatfs/src/vfs_fat_spiflash.c +++ b/components/fatfs/src/vfs_fat_spiflash.c @@ -83,6 +83,7 @@ esp_err_t esp_vfs_fat_spiflash_mount(const char* base_path, goto fail; } free(workbuf); + workbuf = NULL; ESP_LOGI(TAG, "Mounting again"); fresult = f_mount(fs, drv, 0); if (fresult != FR_OK) { From b6b36bd9ddf169039a5528f8b766048d97b975f7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Quentin=20Th=C3=A9rond?= Date: Tue, 25 Jul 2017 14:14:35 +0200 Subject: [PATCH 3/3] mdns: fix leak after _mdns_create_service if we have a malloc error. --- components/mdns/mdns.c | 1 + 1 file changed, 1 insertion(+) diff --git a/components/mdns/mdns.c b/components/mdns/mdns.c index 39cc01829..c3e5c4989 100644 --- a/components/mdns/mdns.c +++ b/components/mdns/mdns.c @@ -1689,6 +1689,7 @@ esp_err_t mdns_service_add(mdns_server_t * server, const char * service, const c item = (mdns_srv_item_t *)malloc(sizeof(mdns_srv_item_t)); if (!item) { + free(s); return ESP_ERR_NO_MEM; }