Skip to content

Commit d8fe044

Browse files
committed
Add null pointer checks
1 parent 74d464a commit d8fe044

File tree

4 files changed

+13
-12
lines changed

4 files changed

+13
-12
lines changed

library.properties

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
name=SdFat
2-
version=1.1.2
2+
version=1.1.3
33
license=MIT
44
author=Bill Greiman <fat16lib@sbcglobal.net>
55
maintainer=Bill Greiman <fat16lib@sbcglobal.net>

src/FatLib/FatFile.cpp

Lines changed: 10 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -262,7 +262,7 @@ bool FatFile::mkdir(FatFile* parent, const char* path, bool pFlag) {
262262
fname_t fname;
263263
FatFile tmpDir;
264264

265-
if (isOpen() || !parent->isDir()) {
265+
if (isOpen() || !parent || !parent->isDir()) {
266266
DBG_FAIL_MACRO;
267267
goto fail;
268268
}
@@ -306,7 +306,7 @@ bool FatFile::mkdir(FatFile* parent, fname_t* fname) {
306306
dir_t* dir;
307307
cache_t* pc;
308308

309-
if (!parent->isDir()) {
309+
if (!parent || !parent->isDir()) {
310310
DBG_FAIL_MACRO;
311311
goto fail;
312312
}
@@ -379,7 +379,7 @@ bool FatFile::open(FatFile* dirFile, const char* path, oflag_t oflag) {
379379
fname_t fname;
380380

381381
// error if already open
382-
if (isOpen() || !dirFile->isDir()) {
382+
if (isOpen() || !dirFile || !dirFile->isDir()) {
383383
DBG_FAIL_MACRO;
384384
goto fail;
385385
}
@@ -425,7 +425,7 @@ bool FatFile::open(FatFile* dirFile, uint16_t index, oflag_t oflag) {
425425
ldir_t*ldir;
426426

427427
// Error if already open.
428-
if (isOpen() || !dirFile->isDir()) {
428+
if (isOpen() || !dirFile || !dirFile->isDir()) {
429429
DBG_FAIL_MACRO;
430430
goto fail;
431431
}
@@ -581,8 +581,9 @@ bool FatFile::openNext(FatFile* dirFile, oflag_t oflag) {
581581
uint8_t lfnOrd = 0;
582582
uint16_t index;
583583

584-
// Check for not open and valid directory..
585-
if (isOpen() || !dirFile->isDir() || (dirFile->curPosition() & 0X1F)) {
584+
// Check for not open and valid directory.
585+
if (isOpen() || !dirFile || !dirFile->isDir()
586+
|| (dirFile->curPosition() & 0X1F)) {
586587
DBG_FAIL_MACRO;
587588
goto fail;
588589
}
@@ -643,7 +644,7 @@ bool FatFile::openParent(FatFile* dirFile) {
643644
uint32_t ddc;
644645
cache_t* cb;
645646

646-
if (isOpen() || !dirFile->isOpen()) {
647+
if (isOpen() || !dirFile || !dirFile->isOpen()) {
647648
goto fail;
648649
}
649650
if (dirFile->m_dirCluster == 0) {
@@ -1235,8 +1236,8 @@ bool FatFile::timestamp(FatFile* file) {
12351236
dir_t* dir;
12361237
dir_t srcDir;
12371238

1238-
// most be files get timestamps
1239-
if (!isFile() || !file->isFile() || !file->dirEntry(&srcDir)) {
1239+
// must be files to get timestamps
1240+
if (!isFile() || !file || !file->isFile() || !file->dirEntry(&srcDir)) {
12401241
DBG_FAIL_MACRO;
12411242
goto fail;
12421243
}

src/FatLib/FatFile.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -835,7 +835,7 @@ class FatFile {
835835
* \return true for success else false.
836836
*/
837837
static bool setCwd(FatFile* dir) {
838-
if (!dir->isDir()) {
838+
if (!dir || !dir->isDir()) {
839839
return false;
840840
}
841841
m_cwd = dir;

src/FatLib/FatFileLFN.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -303,7 +303,7 @@ bool FatFile::open(FatFile* dirFile, fname_t* fname, oflag_t oflag) {
303303
ldir_t* ldir;
304304
size_t len = fname->len;
305305

306-
if (!dirFile->isDir() || isOpen()) {
306+
if (!dirFile || dirFile->isDir() || isOpen()) {
307307
DBG_FAIL_MACRO;
308308
goto fail;
309309
}

0 commit comments

Comments
 (0)