From 95d0b9a24034b117fd3c62ccec7360123a0a12ef Mon Sep 17 00:00:00 2001 From: schneider <schneider@blinkenlichts.net> Date: Tue, 8 Aug 2023 16:32:50 +0200 Subject: [PATCH] recovery: fix some compiler warnings --- recovery/main/rec_main.c | 19 +++++++++++++++---- 1 file changed, 15 insertions(+), 4 deletions(-) diff --git a/recovery/main/rec_main.c b/recovery/main/rec_main.c index 12d85b98f6..cef837e0c0 100644 --- a/recovery/main/rec_main.c +++ b/recovery/main/rec_main.c @@ -175,8 +175,15 @@ static void _scan_dir(char *dir, char *dir_name) { esp32_standard_header_t hdr; char path[64]; - snprintf(path, sizeof(path) / sizeof(char), "%s/%s", dir, - pDirent->d_name); + int ret = snprintf(path, sizeof(path) / sizeof(char), "%s/%s", + dir, pDirent->d_name); + + // Error or too long + if (ret < 0 || ret > sizeof(path) / sizeof(char)) { + ESP_LOGW(TAG, "could not build file path"); + continue; + } + FILE *f = fopen(path, "rb"); if (f == NULL) { ESP_LOGW(TAG, "fopen failed: %s", strerror(errno)); @@ -197,8 +204,12 @@ static void _scan_dir(char *dir, char *dir_name) { } image_entry_t *ie = &image_list[entry]; - snprintf(ie->label, sizeof(ie->label), "%s/%s: %s", dir_name, - pDirent->d_name, hdr.app.project_name); + ret = snprintf(ie->label, sizeof(ie->label), "%s/%s: %s", + dir_name, pDirent->d_name, hdr.app.project_name); + if (ret < 0) { + ESP_LOGW(TAG, "could not build menu entry"); + continue; + } snprintf(ie->path, sizeof(ie->path), "%s", path); _list_menu_entries[entry].label = ie->label; -- GitLab