diff --git a/components/dfs/dfs_v1/filesystems/romfs/dfs_romfs.c b/components/dfs/dfs_v1/filesystems/romfs/dfs_romfs.c index b84c0498eb23e9dc76a2a325848b125e8e72dce3..e3dc79a6b678455973e81ce7dacefdd91afb6379 100644 --- a/components/dfs/dfs_v1/filesystems/romfs/dfs_romfs.c +++ b/components/dfs/dfs_v1/filesystems/romfs/dfs_romfs.c @@ -132,8 +132,16 @@ struct romfs_dirent *dfs_romfs_lookup(struct romfs_dirent *root_dirent, const ch } else { - /* return file dirent */ - return &dirent[index]; + if(rt_strcmp(dirent[index].name, subpath) == 0) + { + /* return file dirent */ + return &dirent[index]; + } + else + { + /* It needs to be a directory but it's actually a file */ + return NULL; + } } } } diff --git a/components/dfs/dfs_v2/filesystems/romfs/dfs_romfs.c b/components/dfs/dfs_v2/filesystems/romfs/dfs_romfs.c index 7cb30b348b8044a3c28507ed5be896f569d55e7b..0071803cfaede9c2b377a1f37f414eb2ccc6b99d 100644 --- a/components/dfs/dfs_v2/filesystems/romfs/dfs_romfs.c +++ b/components/dfs/dfs_v2/filesystems/romfs/dfs_romfs.c @@ -153,8 +153,16 @@ struct romfs_dirent *__dfs_romfs_lookup(struct romfs_dirent *root_dirent, const } else { - /* return file dirent */ - return &dirent[index]; + if(rt_strcmp(dirent[index].name, subpath) == 0) + { + /* return file dirent */ + return &dirent[index]; + } + else + { + /* It needs to be a directory but it's actually a file */ + return NULL; + } } } }