fs-util: extra safety checks on chase_symlinks() root parameter

Let's handle root="" and root="/" safely.
This commit is contained in:
Lennart Poettering 2018-01-17 11:56:52 +01:00
parent 5caf49360b
commit b1bfb84804
1 changed files with 8 additions and 0 deletions

View File

@ -657,6 +657,14 @@ int chase_symlinks(const char *path, const char *original_root, unsigned flags,
* function what to do when encountering a symlink with an absolute path as directory: prefix it by the
* specified path. */
if (original_root) {
if (isempty(original_root)) /* What's this even supposed to mean? */
return -EINVAL;
if (path_equal(original_root, "/")) /* A root directory of "/" is identical to none */
original_root = NULL;
}
if (original_root) {
r = path_make_absolute_cwd(original_root, &root);
if (r < 0)