summaryrefslogtreecommitdiff
path: root/components
diff options
context:
space:
mode:
authoryangfasheng <[email protected]>2018-07-29 12:07:36 +0800
committeryangfasheng <[email protected]>2018-07-29 12:07:36 +0800
commite13f1d9e7fb3129f2c18691d1d800dbaa5c6dff4 (patch)
treea566c17c64011a153d5617873318792f42c94b61 /components
parente6fedb6e9bfbef07c4bcc065a5538d466abee19f (diff)
update dfs.c of File System
Diffstat (limited to 'components')
-rw-r--r--components/dfs/src/dfs.c8
1 files changed, 4 insertions, 4 deletions
diff --git a/components/dfs/src/dfs.c b/components/dfs/src/dfs.c
index 46e3e51229..941ea650c8 100644
--- a/components/dfs/src/dfs.c
+++ b/components/dfs/src/dfs.c
@@ -152,7 +152,7 @@ static int fd_alloc(struct dfs_fdtable *fdt, int startfd)
cnt = cnt > DFS_FD_MAX? DFS_FD_MAX : cnt;
fds = rt_realloc(fdt->fds, cnt * sizeof(struct dfs_fd *));
- if (fds == NULL) goto __out; /* return fdt->maxfd */
+ if (fds == NULL) goto __exit; /* return fdt->maxfd */
/* clean the new allocated fds */
for (index = fdt->maxfd; index < cnt; index ++)
@@ -167,12 +167,12 @@ static int fd_alloc(struct dfs_fdtable *fdt, int startfd)
/* allocate 'struct dfs_fd' */
if (idx < fdt->maxfd &&fdt->fds[idx] == RT_NULL)
{
- fdt->fds[idx] = rt_malloc(sizeof(struct dfs_fd));
+ fdt->fds[idx] = rt_calloc(1, sizeof(struct dfs_fd));
if (fdt->fds[idx] == RT_NULL)
idx = fdt->maxfd;
}
-__out:
+__exit:
return idx;
}
@@ -323,7 +323,7 @@ int fd_is_open(const char *pathname)
for (index = 0; index < fdt->maxfd; index++)
{
fd = fdt->fds[index];
- if (fd == NULL) continue;
+ if (fd == NULL || fd->fops == NULL || fd->path == NULL) continue;
if (fd->fops == fs->ops->fops && strcmp(fd->path, mountpath) == 0)
{