From: Simon McVittie Date: Sat, 1 Oct 2016 11:38:50 +0000 (+0100) Subject: Linux: use readdir(), not deprecated readdir_r() X-Git-Tag: dbus-1.11.8~42 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=e82ec99e9232f2b05066f27559f499f2f2234f45;p=thirdparty%2Fdbus.git Linux: use readdir(), not deprecated readdir_r() 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 Reviewed-by: Thomas Zimmermann Bug: https://bugs.freedesktop.org/show_bug.cgi?id=97357 --- diff --git a/dbus/dbus-sysdeps-unix.c b/dbus/dbus-sysdeps-unix.c index fda5d8e77..106a12ba0 100644 --- a/dbus/dbus-sysdeps-unix.c +++ b/dbus/dbus-sysdeps-unix.c @@ -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] == '.')