diff options
Diffstat (limited to 'firmware/common/dir_uncached.c')
-rw-r--r-- | firmware/common/dir_uncached.c | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/firmware/common/dir_uncached.c b/firmware/common/dir_uncached.c index 2052503c43..c6f3a6f2e1 100644 --- a/firmware/common/dir_uncached.c +++ b/firmware/common/dir_uncached.c | |||
@@ -114,11 +114,16 @@ DIR_UNCACHED* opendir_uncached(const char* name) | |||
114 | } | 114 | } |
115 | if ( (entry.attr & FAT_ATTR_DIRECTORY) && | 115 | if ( (entry.attr & FAT_ATTR_DIRECTORY) && |
116 | (!strcasecmp(part, entry.name)) ) { | 116 | (!strcasecmp(part, entry.name)) ) { |
117 | pdir->parent_dir = pdir->fatdir; | 117 | /* in reality, the parent_dir parameter of fat_opendir is |
118 | * useless because it's sole purpose it to have a way to | ||
119 | * update the file metadata, but here we are only reading | ||
120 | * a directory so there's no need for that kind of stuff. | ||
121 | * Consequently, we can safely pass NULL of it because | ||
122 | * fat_opendir and fat_open are NULL-protected. */ | ||
118 | if ( fat_opendir(IF_MV2(volume,) | 123 | if ( fat_opendir(IF_MV2(volume,) |
119 | &pdir->fatdir, | 124 | &pdir->fatdir, |
120 | entry.firstcluster, | 125 | entry.firstcluster, |
121 | &pdir->parent_dir) < 0 ) { | 126 | NULL) < 0 ) { |
122 | DEBUGF("Failed opening dir '%s' (%ld)\n", | 127 | DEBUGF("Failed opening dir '%s' (%ld)\n", |
123 | part, entry.firstcluster); | 128 | part, entry.firstcluster); |
124 | pdir->busy = false; | 129 | pdir->busy = false; |