[PATCH v4 0/5] road to reentrant real_path
- From
- Brandon Williams <bmwill@google.com>
- Date
- Jan 3, 2017, 19:09 UTC
- Message-ID
- <20170103190923.11882-1-bmwill@google.com>
- In-Reply-To
- <1481566615-75299-1-git-send-email-bmwill@google.com>
Only change with v4 is in [1/5] renaming the #define MAXSYMLINKS back to MAXDEPTH due to a naming conflict brought up by Lars Schneider.
Brandon Williams (4): real_path: resolve symlinks by hand real_path: convert real_path_internal to strbuf_realpath real_path: create real_pathdup real_path: have callers use real_pathdup and strbuf_realpath
Johannes Sixt (1): real_path: canonicalize directory separators in root parts
abspath.c | 225 +++++++++++++++++++++++++++++++++++++----------------- builtin/init-db.c | 6 +- cache.h | 3 + environment.c | 2 +- setup.c | 13 ++-- sha1_file.c | 2 +- submodule.c | 2 +- transport.c | 2 +- worktree.c | 2 +- 9 files changed, 173 insertions(+), 84 deletions(-)
--- interdiff with v3
diff --git a/abspath.c b/abspath.c index 1d56f5ed9..3562d17bf 100644 --- a/abspath.c +++ b/abspath.c @@ -62,7 +62,7 @@ static void get_root_part(struct strbuf *resolved, struct strbuf *remaining) } /* We allow "recursive" symbolic links. Only within reason, though. */ -#define MAXSYMLINKS 5 +#define MAXDEPTH 5 /* * Return the real path (i.e., absolute path, with symlinks resolved @@ -138,10 +138,10 @@ char *strbuf_realpath(struct strbuf *resolved, const char *path, ssize_t len; strbuf_reset(&symlink); - if (num_symlinks++ > MAXSYMLINKS) { + if (num_symlinks++ > MAXDEPTH) { if (die_on_error) die("More than %d nested symlinks " - "on path '%s'", MAXSYMLINKS, path); + "on path '%s'", MAXDEPTH, path); else goto error_out; }
-- 2.11.0.390.gc69c2f50cf-goog