File tree Expand file tree Collapse file tree 1 file changed +23
-17
lines changed
Expand file tree Collapse file tree 1 file changed +23
-17
lines changed Original file line number Diff line number Diff line change @@ -532,25 +532,31 @@ static int mkdir_if_not_exists(const char *path)
532532
533533static int mkdir_for_file (const char * file_path )
534534{
535- char dir_path [SETTINGS_FILE_NAME_MAX ];
536- int err ;
537-
538- for (size_t i = 0 ; file_path [i ] != '\0' ; i ++ ) {
539- if (i > 0 && file_path [i ] == '/' ) {
540- dir_path [i ] = '\0' ;
541-
542- err = mkdir_if_not_exists (dir_path );
543- if (err ) {
544- return err ;
545- }
546- }
547-
548- dir_path [i ] = file_path [i ];
549- }
550-
551- return 0 ;
535+ char dir_path [SETTINGS_FILE_NAME_MAX ];
536+ int err ;
537+
538+ for (size_t i = 0 ; file_path [i ] != '\0' ; i ++ ) {
539+ if (i > 0 && file_path [i ] == '/' ) {
540+ dir_path [i ] = '\0' ;
541+
542+ // Skip mkdir for FatFS root directories (ending with ':')
543+ if (strrchr (dir_path , ':' ) == & dir_path [strlen (dir_path ) - 1 ]) {
544+ LOG_DBG ("FatFS root directory detected, skipping mkdir for path: %s" ,
545+ dir_path );
546+ } else {
547+ err = mkdir_if_not_exists (dir_path );
548+ if (err ) {
549+ return err ;
550+ }
551+ }
552+ }
553+ dir_path [i ] = file_path [i ];
554+ }
555+
556+ return 0 ;
552557}
553558
559+
554560int settings_backend_init (void )
555561{
556562 static struct settings_file config_init_settings_file = {
You can’t perform that action at this time.
0 commit comments