diff --git a/src/basic/fs-util.c b/src/basic/fs-util.c index c0ba1f18d1..3dc194ca6e 100644 --- a/src/basic/fs-util.c +++ b/src/basic/fs-util.c @@ -582,7 +582,7 @@ static bool safe_transition(const struct stat *a, const struct stat *b) { int chase_symlinks(const char *path, const char *original_root, unsigned flags, char **ret) { _cleanup_free_ char *buffer = NULL, *done = NULL, *root = NULL; _cleanup_close_ int fd = -1; - unsigned max_follow = 32; /* how many symlinks to follow before giving up and returning ELOOP */ + unsigned max_follow = CHASE_SYMLINKS_MAX; /* how many symlinks to follow before giving up and returning ELOOP */ struct stat previous_stat; bool exists = true; char *todo; diff --git a/src/basic/fs-util.h b/src/basic/fs-util.h index 16f20cecdf..e8362b92a5 100644 --- a/src/basic/fs-util.h +++ b/src/basic/fs-util.h @@ -78,6 +78,9 @@ enum { CHASE_STEP = 1U << 6, /* If set, just execute a single step of the normalization */ }; +/* How many iterations to execute before returning -ELOOP */ +#define CHASE_SYMLINKS_MAX 32 + int chase_symlinks(const char *path_with_prefix, const char *root, unsigned flags, char **ret); int chase_symlinks_and_open(const char *path, const char *root, unsigned chase_flags, int open_flags, char **ret_path);