From: Lennart Poettering Date: Wed, 4 Apr 2018 15:06:12 +0000 (+0200) Subject: fs-util: export how many iterations chase_symlinks() executes at max X-Git-Url: https://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=commitdiff_plain;h=206dc15a7a29cae1b42521812faf87e0888e07c0;p=elogind.git fs-util: export how many iterations chase_symlinks() executes at max --- diff --git a/src/basic/fs-util.c b/src/basic/fs-util.c index 890a20a3e..7ccd6da21 100644 --- a/src/basic/fs-util.c +++ b/src/basic/fs-util.c @@ -597,7 +597,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 4abbd0ea6..654922fd1 100644 --- a/src/basic/fs-util.h +++ b/src/basic/fs-util.h @@ -94,6 +94,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);