From 59ee3750d110f64c88e45570826db302674d6f6c Mon Sep 17 00:00:00 2001 From: Ondrej Mikle Date: Mon, 2 Sep 2019 17:33:41 +0200 Subject: [PATCH] core/modtrezorio: raise exception when directory listing fails on disk error or other error --- core/embed/extmod/modtrezorio/modtrezorio-fatfs.h | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/core/embed/extmod/modtrezorio/modtrezorio-fatfs.h b/core/embed/extmod/modtrezorio/modtrezorio-fatfs.h index ea72f532b..7d919e480 100644 --- a/core/embed/extmod/modtrezorio/modtrezorio-fatfs.h +++ b/core/embed/extmod/modtrezorio/modtrezorio-fatfs.h @@ -272,7 +272,11 @@ STATIC mp_obj_t mod_trezorio_FatFSDir_iternext(mp_obj_t self) { mp_obj_FatFSDir_t *o = MP_OBJ_TO_PTR(self); FILINFO info; FRESULT res = f_readdir(&(o->dp), &info); - if (res != FR_OK || info.fname[0] == 0) { // stop on error or end of dir + if (res != FR_OK) { + f_closedir(&(o->dp)); + mp_raise_OSError(fresult_to_errno_table[res]); + } + if (info.fname[0] == 0) { // stop on end of dir f_closedir(&(o->dp)); return MP_OBJ_STOP_ITERATION; }