Explorar o código

fix dfsv2 romfs dfs_romfs_getdents buffer overflow.

geniusgogo %!s(int64=2) %!d(string=hai) anos
pai
achega
5a438c818a
Modificáronse 1 ficheiros con 1 adicións e 1 borrados
  1. 1 1
      components/dfs/dfs_v2/filesystems/romfs/dfs_romfs.c

+ 1 - 1
components/dfs/dfs_v2/filesystems/romfs/dfs_romfs.c

@@ -352,7 +352,7 @@ static int dfs_romfs_getdents(struct dfs_file *file, struct dirent *dirp, uint32
 
         d->d_namlen = rt_strlen(name);
         d->d_reclen = (rt_uint16_t)sizeof(struct dirent);
-        rt_strncpy(d->d_name, name, rt_strlen(name) + 1);
+        rt_strncpy(d->d_name, name, DFS_PATH_MAX);
 
         /* move to next position */
         ++ file->fpos;