]> git.sesse.net Git - vlc/commitdiff
vlc_readdir: fix integer overflow on error
authorRémi Denis-Courmont <remi@remlab.net>
Thu, 9 Jan 2014 19:04:36 +0000 (21:04 +0200)
committerRémi Denis-Courmont <remi@remlab.net>
Thu, 9 Jan 2014 19:04:36 +0000 (21:04 +0200)
src/posix/filesystem.c

index 246133b7a027ba7e5c37d799819b9e046f4d0814..b4ba03a39ffbd7c10fb465d82d0872971ade7cfa 100644 (file)
@@ -158,9 +158,9 @@ char *vlc_readdir( DIR *dir )
 
     long len = fpathconf (dirfd (dir), _PC_NAME_MAX);
     /* POSIX says there shall we room for NAME_MAX bytes at all times */
-    if (/*len == -1 ||*/ len < NAME_MAX)
+    if (len == -1 || len < NAME_MAX)
         len = NAME_MAX;
-    len += offsetof (struct dirent, d_name) + 1;
+    len += sizeof (*ent) + 1 - sizeof (ent->d_name);
 
     struct dirent *buf = malloc (len);
     if (unlikely(buf == NULL))