From: Florian Weimer Date: Thu, 19 Dec 2013 11:42:32 +0000 (+0100) Subject: journal: replace readdir_r with readdir X-Git-Tag: v209~744 X-Git-Url: https://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?p=elogind.git;a=commitdiff_plain;h=bde1fdd773c5bc036370922e67ff3550a1f5cded journal: replace readdir_r with readdir This commit also adds error handling for failures during directory reading. --- diff --git a/src/journal/sd-journal.c b/src/journal/sd-journal.c index bb116df04..283d59306 100644 --- a/src/journal/sd-journal.c +++ b/src/journal/sd-journal.c @@ -1442,10 +1442,16 @@ static int add_directory(sd_journal *j, const char *prefix, const char *dirname) for (;;) { struct dirent *de; - union dirent_storage buf; - r = readdir_r(d, &buf.de, &de); - if (r != 0 || !de) + errno = 0; + de = readdir(d); + if (!de && errno != 0) { + r = -errno; + log_debug("Failed to read directory %s: %s", + m->path, strerror(errno)); + return r; + } + if (!de) break; if (dirent_is_file_with_suffix(de, ".journal") || @@ -1526,11 +1532,17 @@ static int add_root_directory(sd_journal *j, const char *p) { for (;;) { struct dirent *de; - union dirent_storage buf; sd_id128_t id; - r = readdir_r(d, &buf.de, &de); - if (r != 0 || !de) + errno = 0; + de = readdir(d); + if (!de && errno != 0) { + r = -errno; + log_debug("Failed to read directory %s: %s", + m->path, strerror(errno)); + return r; + } + if (!de) break; if (dirent_is_file_with_suffix(de, ".journal") ||