diff options
Diffstat (limited to 'gnu/packages/patches/ola-readdir-r.patch')
-rw-r--r-- | gnu/packages/patches/ola-readdir-r.patch | 62 |
1 files changed, 62 insertions, 0 deletions
diff --git a/gnu/packages/patches/ola-readdir-r.patch b/gnu/packages/patches/ola-readdir-r.patch new file mode 100644 index 0000000000..b4bd98137e --- /dev/null +++ b/gnu/packages/patches/ola-readdir-r.patch @@ -0,0 +1,62 @@ +Fix build failure caused by use of the deprecated readdir_r(3) while +building with -Werror=deprecated-declarations + +Patch copied from upstream source repository: +https://github.com/daveol/ola/commit/9d8575ff38f76df698ea8889e07a3dee8f21bd68 + +From 9d8575ff38f76df698ea8889e07a3dee8f21bd68 Mon Sep 17 00:00:00 2001 +From: Dave Olsthoorn <dave.olsthoorn@gmail.com> +Date: Wed, 2 Mar 2016 11:22:17 +0100 +Subject: [PATCH] Use readdir instead of readdir_r + +This replacec the use of readdir_r with readdir since readdir seems to +be both dangarous and deprecated in newer versions of glibc. + +This fixes #1055 +--- + common/file/Util.cpp | 17 ++++++++--------- + 1 file changed, 8 insertions(+), 9 deletions(-) + +diff --git a/common/file/Util.cpp b/common/file/Util.cpp +index e2261fd..0ffddd3 100644 +--- a/common/file/Util.cpp ++++ b/common/file/Util.cpp +@@ -128,30 +128,29 @@ bool FindMatchingFiles(const string &directory, + FindClose(h_find); + #else + DIR *dp; +- struct dirent dir_ent; +- struct dirent *dir_ent_p; ++ struct dirent *dir_ent; + if ((dp = opendir(directory.data())) == NULL) { + OLA_WARN << "Could not open " << directory << ":" << strerror(errno); + return false; + } + +- if (readdir_r(dp, &dir_ent, &dir_ent_p)) { +- OLA_WARN << "readdir_r(" << directory << "): " << strerror(errno); ++ if ((dir_ent = readdir(dp)) == NULL) { ++ OLA_WARN << "readdir(" << directory << "): " << strerror(errno); + closedir(dp); + return false; + } + +- while (dir_ent_p != NULL) { ++ while (dir_ent != NULL) { + vector<string>::const_iterator iter; + for (iter = prefixes.begin(); iter != prefixes.end(); ++iter) { +- if (!strncmp(dir_ent_p->d_name, iter->data(), iter->size())) { ++ if (!strncmp(dir_ent->d_name, iter->data(), iter->size())) { + std::ostringstream str; +- str << directory << PATH_SEPARATOR << dir_ent_p->d_name; ++ str << directory << PATH_SEPARATOR << dir_ent->d_name; + files->push_back(str.str()); + } + } +- if (readdir_r(dp, &dir_ent, &dir_ent_p)) { +- OLA_WARN << "readdir_r(" << directory << "): " << strerror(errno); ++ if ((dir_ent = readdir(dp)) == NULL) { ++ OLA_WARN << "readdir(" << directory << "): " << strerror(errno); + closedir(dp); + return false; + } |