]> git.ipfire.org Git - thirdparty/systemd.git/commit - src/core/namespace.c
core: make sure we use the correct mount flag when re-mounting bind mounts 14532/head
authorLennart Poettering <lennart@poettering.net>
Thu, 9 Jan 2020 14:06:06 +0000 (15:06 +0100)
committerLennart Poettering <lennart@poettering.net>
Thu, 9 Jan 2020 14:18:08 +0000 (15:18 +0100)
commit7cce68e1e042e84decae21cd5d67750235f3d539
tree058f33fdae9568b89765e1309564eb7d64914b16
parent8403219fc13abebde55e24c19280b1b481c68dd1
core: make sure we use the correct mount flag when re-mounting bind mounts

When in a userns environment we cannot take away per-mount point flags
set on a mount point that was passed to us. Hence we need to be careful
to always check the actual mount flags in place and manipulate only
those flags of them that we actually want to change and not reset more
as side-effect.

We mostly got this right already in
bind_remount_recursive_with_mountinfo(), but didn't in the simpler
bind_remount_one_with_mountinfo(). Catch up.

(The old code assumed that the MountEntry.flags field contained the
right flag settings, but it actually doesn't for new mounts we just
established as for those mount() establishes the initial flags for us,
and we have to read them back to figure out which ones the kernel
picked.)

Fixes: #13622
src/core/namespace.c
src/shared/mount-util.c
src/shared/mount-util.h