From 4d9435a5ef504d5f6a72dfe79bfd4deb286884c7 Mon Sep 17 00:00:00 2001 From: "sonika.rathi" Date: Tue, 5 May 2026 12:04:41 +0200 Subject: [PATCH] fix(fatfs): fix readdir/stat path buffer sizing in test --- .../fatfs/test_apps/test_fatfs_common/test_fatfs_common.c | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/components/fatfs/test_apps/test_fatfs_common/test_fatfs_common.c b/components/fatfs/test_apps/test_fatfs_common/test_fatfs_common.c index 887123cb01c..82cba98dcb1 100644 --- a/components/fatfs/test_apps/test_fatfs_common/test_fatfs_common.c +++ b/components/fatfs/test_apps/test_fatfs_common/test_fatfs_common.c @@ -1,5 +1,5 @@ /* - * SPDX-FileCopyrightText: 2015-2024 Espressif Systems (Shanghai) CO LTD + * SPDX-FileCopyrightText: 2015-2026 Espressif Systems (Shanghai) CO LTD * * SPDX-License-Identifier: Apache-2.0 */ @@ -760,7 +760,9 @@ void test_fatfs_can_opendir(const char* path) void test_fatfs_readdir_stat(const char* dir_prefix) { char name_dir_file[64]; - char name_dir_stat[64]; + /* Full path = dir_prefix + "/" + d_name; LFN entries can be ~255 bytes, so 64 + * was unsafe. Use sizeof() as snprintf bound. */ + char name_dir_stat[320]; int file_num = 25; rmdir(dir_prefix); @@ -785,7 +787,7 @@ void test_fatfs_readdir_stat(const char* dir_prefix) if (!de) { break; } - snprintf(name_dir_stat, sizeof(dir_prefix)+sizeof(de->d_name), "%s/%s", dir_prefix, de->d_name); + snprintf(name_dir_stat, sizeof(name_dir_stat), "%s/%s", dir_prefix, de->d_name); TEST_ASSERT_EQUAL(0, stat(name_dir_stat, &st)); dir_size += st.st_size; }