summaryrefslogtreecommitdiffstatshomepage
path: root/extmod/vfs_fat_file.c
diff options
context:
space:
mode:
Diffstat (limited to 'extmod/vfs_fat_file.c')
-rw-r--r--extmod/vfs_fat_file.c9
1 files changed, 6 insertions, 3 deletions
diff --git a/extmod/vfs_fat_file.c b/extmod/vfs_fat_file.c
index e269ef593c..76ac23685a 100644
--- a/extmod/vfs_fat_file.c
+++ b/extmod/vfs_fat_file.c
@@ -120,9 +120,12 @@ STATIC MP_DEFINE_CONST_FUN_OBJ_1(file_obj_flush_obj, file_obj_flush);
STATIC mp_obj_t file_obj_close(mp_obj_t self_in) {
pyb_file_obj_t *self = MP_OBJ_TO_PTR(self_in);
- FRESULT res = f_close(&self->fp);
- if (res != FR_OK) {
- mp_raise_OSError(fresult_to_errno_table[res]);
+ // if fs==NULL then the file is closed and in that case this method is a no-op
+ if (self->fp.fs != NULL) {
+ FRESULT res = f_close(&self->fp);
+ if (res != FR_OK) {
+ mp_raise_OSError(fresult_to_errno_table[res]);
+ }
}
return mp_const_none;
}