diff --git a/src/extra/libs/fsdrv/lv_fs_posix.c b/src/extra/libs/fsdrv/lv_fs_posix.c index 753c0227c5..7f91c8612c 100644 --- a/src/extra/libs/fsdrv/lv_fs_posix.c +++ b/src/extra/libs/fsdrv/lv_fs_posix.c @@ -151,7 +151,7 @@ static lv_fs_res_t fs_read(lv_fs_drv_t * drv, void * file_p, void * buf, uint32_ { LV_UNUSED(drv); *br = read((lv_uintptr_t)file_p, buf, btr); - return LV_FS_RES_OK; + return (int32_t)*br < 0 ? LV_FS_RES_UNKNOWN : LV_FS_RES_OK; } /** @@ -167,7 +167,7 @@ static lv_fs_res_t fs_write(lv_fs_drv_t * drv, void * file_p, const void * buf, { LV_UNUSED(drv); *bw = write((lv_uintptr_t)file_p, buf, btw); - return LV_FS_RES_OK; + return (int32_t)*bw ? LV_FS_RES_UNKNOWN : LV_FS_RES_OK; } /** diff --git a/src/extra/libs/fsdrv/lv_fs_stdio.c b/src/extra/libs/fsdrv/lv_fs_stdio.c index e14d2ce1c3..5184e12db3 100644 --- a/src/extra/libs/fsdrv/lv_fs_stdio.c +++ b/src/extra/libs/fsdrv/lv_fs_stdio.c @@ -152,7 +152,7 @@ static lv_fs_res_t fs_read(lv_fs_drv_t * drv, void * file_p, void * buf, uint32_ { LV_UNUSED(drv); *br = fread(buf, 1, btr, file_p); - return LV_FS_RES_OK; + return (int32_t)*br < 0 ? LV_FS_RES_UNKNOWN : LV_FS_RES_OK; } /** @@ -168,7 +168,7 @@ static lv_fs_res_t fs_write(lv_fs_drv_t * drv, void * file_p, const void * buf, { LV_UNUSED(drv); *bw = fwrite(buf, 1, btw, file_p); - return LV_FS_RES_OK; + return (int32_t)*bw ? LV_FS_RES_UNKNOWN : LV_FS_RES_OK; } /**