fix open directory but without O_DIRECTORY flag issue.

git-svn-id: https://rt-thread.googlecode.com/svn/trunk@1313 bbd45198-f89e-11dd-88c7-29a3b14d5316
This commit is contained in:
bernard.xiong@gmail.com 2011-03-06 15:01:13 +00:00
parent 62c1662366
commit a0cce584a8
1 changed files with 4 additions and 0 deletions

View File

@ -146,6 +146,10 @@ int dfs_romfs_open(struct dfs_fd* file)
dirent = dfs_romfs_lookup(root_dirent, file->path, &size);
if (dirent == RT_NULL) return -DFS_STATUS_ENOENT;
/* is a directory but not with O_DIRECTORY flag */
if ((dirent->type == ROMFS_DIRENT_DIR) && !(file->flags & DFS_O_DIRECTORY))
return -DFS_STATUS_ENOENT;
file->data = dirent;
file->size = size;
file->pos = 0;