summaryrefslogtreecommitdiff
path: root/src/basic/copy.h
diff options
context:
space:
mode:
authorLennart Poettering <lennart@poettering.net>2018-06-06 17:33:28 +0200
committerSven Eden <yamakuzure@gmx.net>2018-08-24 16:47:08 +0200
commit46d4c3a36a98c9f3add60e1d4e25b4fed1d304da (patch)
tree85c93ce893bfd32e2ad322eedd0b7d0a39b17b2e /src/basic/copy.h
parentcca09ee8d6ece8e22b638efd05c4c0eb49e91b91 (diff)
copy: extend check for mount point crossing
We do this checks as protection against bind mount cycles on the same file system. However, the check wasn't really effective for that, as it would only detect cycles A → B → A this way. By using fs_is_mount_point() we'll also detect cycles A → A. Also, while we are at it, make these file system boundary checks optional. This is not used anywhere, but might be eventually... Most importantly though add a longer blurb explanation the why.
Diffstat (limited to 'src/basic/copy.h')
-rw-r--r--src/basic/copy.h7
1 files changed, 4 insertions, 3 deletions
diff --git a/src/basic/copy.h b/src/basic/copy.h
index 8f5acdb7c..7c1d86fe3 100644
--- a/src/basic/copy.h
+++ b/src/basic/copy.h
@@ -13,9 +13,10 @@
#include <sys/types.h>
typedef enum CopyFlags {
- COPY_REFLINK = 1U << 0, /* Try to reflink */
- COPY_MERGE = 1U << 1, /* Merge existing trees with our new one to copy */
- COPY_REPLACE = 1U << 2, /* Replace an existing file if there's one */
+ COPY_REFLINK = 1U << 0, /* Try to reflink */
+ COPY_MERGE = 1U << 1, /* Merge existing trees with our new one to copy */
+ COPY_REPLACE = 1U << 2, /* Replace an existing file if there's one */
+ COPY_SAME_MOUNT = 1U << 3, /* Don't descend recursively into other file systems, across mount point boundaries */
} CopyFlags;
#if 0 /// UNNEEDED by elogind