From 4f6077f36948d0fa65a550f2719275b2b3e9a544 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Benjamin=20Cab=C3=A9?= Date: Wed, 18 Jun 2025 16:40:19 +0200 Subject: [PATCH] modules: lvgl: don't try to open file in read mode with create flag set MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Current code would have systematically tried to add the FS_O_CREATE flag when opening a file in read mode. This effectively made it impossible to open files to read them on read-only file systems. Signed-off-by: Benjamin Cabé --- modules/lvgl/lvgl_fs.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/modules/lvgl/lvgl_fs.c b/modules/lvgl/lvgl_fs.c index 9e1674cf07f..018cca65663 100644 --- a/modules/lvgl/lvgl_fs.c +++ b/modules/lvgl/lvgl_fs.c @@ -56,7 +56,7 @@ static lv_fs_res_t errno_to_lv_fs_res(int err) static void *lvgl_fs_open(lv_fs_drv_t *drv, const char *path, lv_fs_mode_t mode) { int err; - int zmode = FS_O_CREATE; + int zmode = 0; void *file; /* LVGL is passing absolute paths without the root slash add it back @@ -64,9 +64,13 @@ static void *lvgl_fs_open(lv_fs_drv_t *drv, const char *path, lv_fs_mode_t mode) */ path--; - zmode |= (mode & LV_FS_MODE_WR) ? FS_O_WRITE : 0; + zmode |= (mode & LV_FS_MODE_WR) ? FS_O_WRITE | FS_O_CREATE : 0; zmode |= (mode & LV_FS_MODE_RD) ? FS_O_READ : 0; + if (zmode == 0) { + return NULL; + } + file = lv_malloc(sizeof(struct fs_file_t)); if (!file) { return NULL;