Răsfoiți Sursa

修正一处dirent没有释放的问题

shaojinchun 5 ani în urmă
părinte
comite
b3c904121e
1 a modificat fișierele cu 3 adăugiri și 0 ștergeri
  1. 3 0
      components/dfs/filesystems/cromfs/dfs_cromfs.c

+ 3 - 0
components/dfs/filesystems/cromfs/dfs_cromfs.c

@@ -929,7 +929,10 @@ static int dfs_cromfs_getdents(struct dfs_fd *file, struct dirent *dirp, uint32_
 
     result =  rt_mutex_take(&ci->lock, RT_WAITING_FOREVER);
     if (result != RT_EOK)
+    {
+        free(dirent);
         return -EINTR;
+    }
     di_mem = cromfs_dirent_cache_get(ci, fi->partition_pos, fi->size);
     if (di_mem)
         memcpy(dirent, di_mem, fi->size);