diff --git a/components/dfs/src/dfs_posix.c b/components/dfs/src/dfs_posix.c index 250f6eaf7f83a481ac9e040f8c8795331898a87c..c379d5c969110a1893d084cfb9aed4b29d885939 100644 --- a/components/dfs/src/dfs_posix.c +++ b/components/dfs/src/dfs_posix.c @@ -230,6 +230,7 @@ off_t lseek(int fd, off_t offset, int whence) break; default: + fd_put(d); rt_set_errno(-DFS_STATUS_EINVAL); return -1; @@ -237,6 +238,7 @@ off_t lseek(int fd, off_t offset, int whence) if (offset < 0) { + fd_put(d); rt_set_errno(-DFS_STATUS_EINVAL); return -1; @@ -457,6 +459,7 @@ int mkdir(const char *path, mode_t mode) if (result < 0) { + fd_put(d); fd_put(d); rt_set_errno(result); @@ -465,6 +468,7 @@ int mkdir(const char *path, mode_t mode) dfs_file_close(d); fd_put(d); + fd_put(d); return 0; }