]> git.ipfire.org Git - thirdparty/dbus.git/commitdiff
Linux: use readdir(), not deprecated readdir_r()
authorSimon McVittie <smcv@debian.org>
Sat, 1 Oct 2016 11:38:50 +0000 (12:38 +0100)
committerSimon McVittie <smcv@debian.org>
Thu, 13 Oct 2016 16:20:31 +0000 (17:20 +0100)
glibc >= 2.24 marks readdir_r() as deprecated. It is meant to be a
thread-safe version of readdir(), but modern implementations of readdir()
are thread-safe anyway (when called with a distinct DIR * argument),
and readdir_r() has some design issues involving PATH_MAX.

This code path is in Linux-specific code, so we can safely assume a
high-quality implementation of readdir().

Signed-off-by: Simon McVittie <smcv@debian.org>
Reviewed-by: Thomas Zimmermann <tdz@users.sourceforge.net>
Bug: https://bugs.freedesktop.org/show_bug.cgi?id=97357

dbus/dbus-sysdeps-unix.c

index fda5d8e774ef5ed43e6c181054e8c3809919dc32..106a12ba0dc2bf3b39fed40c74452010364e6744 100644 (file)
@@ -4341,13 +4341,13 @@ _dbus_close_all (void)
     {
       for (;;)
         {
-          struct dirent buf, *de;
-          int k, fd;
+          struct dirent *de;
+          int fd;
           long l;
           char *e = NULL;
 
-          k = readdir_r (d, &buf, &de);
-          if (k != 0 || !de)
+          de = readdir (d);
+          if (!de)
             break;
 
           if (de->d_name[0] == '.')