Sign Up
Log In
Log In
or
Sign Up
Places
All Projects
Status Monitor
Collapse sidebar
openSUSE:Leap:42.1:Update
kdump.5722
kdump-DT_UNKNOWN-fallback-to-stat.patch
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
File kdump-DT_UNKNOWN-fallback-to-stat.patch of Package kdump.5722
From: Petr Tesarik <ptesarik@suse.com> Subject: Fall back to stat() if file type is DT_UNKNOWN References: bsc#964206 Patch-mainline: v0.8.16 Git-commit: 479c69b527d70c94e3183836da84be72baa31246 Some file systems (most notably XFS with default options) do not set the file type in struct dirent. Signed-off-by: Petr Tesarik <ptesarik@suse.com> --- kdumptool/fileutil.cc | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) --- a/kdumptool/fileutil.cc +++ b/kdumptool/fileutil.cc @@ -18,6 +18,7 @@ */ #include <sys/types.h> #include <sys/stat.h> +#include <fcntl.h> #include <unistd.h> #include <cerrno> #include <cstring> @@ -449,7 +450,17 @@ bool FilterDots::test(int dirfd, const s // ----------------------------------------------------------------------------- bool FilterDotsAndNondirs::test(int dirfd, const struct dirent *d) const { - return FilterDots::test(dirfd, d) && d->d_type == DT_DIR; + if (!FilterDots::test(dirfd, d)) + return false; + if (d->d_type == DT_DIR) + return true; + if (d->d_type != DT_UNKNOWN) + return false; + + struct stat mystat; + if (fstatat(dirfd, d->d_name, &mystat, AT_SYMLINK_NOFOLLOW) != 0) + return false; + return S_ISDIR(mystat.st_mode); } //}}}
Locations
Projects
Search
Status Monitor
Help
OpenBuildService.org
Documentation
API Documentation
Code of Conduct
Contact
Support
@OBShq
Terms
openSUSE Build Service is sponsored by
The Open Build Service is an
openSUSE project
.
Sign Up
Log In
Places
Places
All Projects
Status Monitor