core/execute: RuntimeDirectory= or friends requires mount namespace

Since #6940, RuntimeDirectory= or their friends imply BindPaths=.
So, if at least one of them are set, mount namespace is required.
This commit is contained in:
Yu Watanabe
2017-11-08 15:48:51 +09:00
parent 23fd04e92d
commit 652bb2637a
+6 -8
View File
@@ -1705,7 +1705,12 @@ static bool exec_needs_mount_namespace(
!strv_isempty(context->inaccessible_paths))
return true;
if (context->n_bind_mounts > 0)
if (context->n_bind_mounts > 0 ||
!strv_isempty(context->directories[EXEC_DIRECTORY_RUNTIME].paths) ||
!strv_isempty(context->directories[EXEC_DIRECTORY_STATE].paths) ||
!strv_isempty(context->directories[EXEC_DIRECTORY_CACHE].paths) ||
!strv_isempty(context->directories[EXEC_DIRECTORY_LOGS].paths) ||
!strv_isempty(context->directories[EXEC_DIRECTORY_CONFIGURATION].paths))
return true;
if (context->mount_flags != 0)
@@ -1725,13 +1730,6 @@ static bool exec_needs_mount_namespace(
if (context->mount_apivfs && (context->root_image || context->root_directory))
return true;
if (context->dynamic_user &&
(!strv_isempty(context->directories[EXEC_DIRECTORY_RUNTIME].paths) ||
!strv_isempty(context->directories[EXEC_DIRECTORY_STATE].paths) ||
!strv_isempty(context->directories[EXEC_DIRECTORY_CACHE].paths) ||
!strv_isempty(context->directories[EXEC_DIRECTORY_LOGS].paths)))
return true;
return false;
}