From: Lennart Poettering Date: Thu, 23 Jul 2015 19:41:22 +0000 (+0200) Subject: copy: when we recursively copy a directory tree, copy everything X-Git-Tag: v223~51^2 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=refs%2Fpull%2F692%2Fhead;p=thirdparty%2Fsystemd.git copy: when we recursively copy a directory tree, copy everything Don't ignore hidden files and directories. Fixes #386 --- diff --git a/src/basic/copy.c b/src/basic/copy.c index 230e7e4d3fc..e2d356d6765 100644 --- a/src/basic/copy.c +++ b/src/basic/copy.c @@ -24,6 +24,7 @@ #include "util.h" #include "btrfs-util.h" +#include "strv.h" #include "copy.h" #define COPY_BUFFER_SIZE (16*1024) @@ -262,10 +263,13 @@ static int fd_copy_directory( (void) copy_xattr(dirfd(d), fdt); } - FOREACH_DIRENT(de, d, return -errno) { + FOREACH_DIRENT_ALL(de, d, return -errno) { struct stat buf; int q; + if (STR_IN_SET(de->d_name, ".", "..")) + continue; + if (fstatat(dirfd(d), de->d_name, &buf, AT_SYMLINK_NOFOLLOW) < 0) { r = -errno; continue;