Skip to content

Commit 236e434

Browse files
committed
Additionally clearing pointers just in case
Clearing `_file` and `_dir` pointers after freeing on failure to open just in case close() is later called. To elaborate, the `_file` and `_dir` pointers are normally freed and cleared by _close(), but when a failure occurs upon opening, these pointers were being left orphaned since calling close() after failure to open doesn't make much sense, and indeed caused serious issues within lfs.
1 parent 1ce5cf1 commit 236e434

File tree

1 file changed

+2
-0
lines changed

1 file changed

+2
-0
lines changed

libraries/Adafruit_LittleFS/src/Adafruit_LittleFS_File.cpp

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -68,6 +68,7 @@ bool File::_open_file (char const *filepath, uint8_t mode)
6868
PRINT_LFS_ERR(rc);
6969
// free memory
7070
rtos_free(_file);
71+
_file = NULL;
7172
return false;
7273
}
7374

@@ -93,6 +94,7 @@ bool File::_open_dir (char const *filepath)
9394
PRINT_LFS_ERR(rc);
9495
// free memory
9596
rtos_free(_dir);
97+
_dir = NULL;
9698
return false;
9799
}
98100

0 commit comments

Comments
 (0)