Skip to content
Permalink
Browse files

findlib: parent dirs should have consistent mode

Previously when creating parent directories Bareos handled the deepest
parent directory special and set permissions on it.
This surfaced when selecting only files, but not directories to restore.
In that case the directory that contains the files got a mode that was
derived from the file mode of the file being restored when the parent
directory was created.
While this in itself is already inconsistent, the effective mode was
also calculated by adding S_IWUSR and S_IXUSR which did not take group
or other in account.

This patch now makes sure that no permission on parent directories is
set explicitly, so you just get what the effective uid, gid and umask
will produce.

(cherry picked from commit 7058607)
  • Loading branch information
arogge committed Dec 17, 2019
1 parent f17ed9e commit 1b5ff848802eda55b79436b96d80ccdb58085055
Showing with 1 addition and 1 deletion.
  1. +1 −1 src/findlib/mkpath.c
@@ -265,7 +265,7 @@ bool makepath(ATTR *attr, const char *apath, mode_t mode, mode_t parent_mode,
/*
* Set for final component
*/
if (i < ndir && new_dir[i++]) {
if (i < ndir && new_dir[i++] && !keep_dir_modes) {
set_own_mod(attr, path, owner, group, mode);
}

0 comments on commit 1b5ff84

Please sign in to comment.
You can’t perform that action at this time.