Browse Source

修正mkdir lseek中文件句柄不释放的bug

www220@tom.com 9 years ago
parent
commit
3bd1a372a0
1 changed files with 4 additions and 0 deletions
  1. 4 0
      components/dfs/src/dfs_posix.c

+ 4 - 0
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;
 }