提交 b6ad2c23 编写于 作者: V Viktor Mihajlovski 提交者: Eric Blake

selinux: Fix incorrect object label generation.

This is a fix for the object label generation. It uses a new flag for
virSecuritySELinuxGenNewContext that specifies whether the context is
for an object. If so the context role remains unchanged.
Without this fix it is not possible to start domains with image file or
block device backed storage when selinux is enabled.
Signed-off-by: NViktor Mihajlovski <mihajlov@linux.vnet.ibm.com>
上级 521b7ab7
......@@ -141,7 +141,9 @@ cleanup:
static char *
virSecuritySELinuxGenNewContext(const char *basecontext, const char *mcs)
virSecuritySELinuxGenNewContext(const char *basecontext,
const char *mcs,
bool isObjectContext)
{
context_t context = NULL;
char *ret = NULL;
......@@ -176,10 +178,11 @@ virSecuritySELinuxGenNewContext(const char *basecontext, const char *mcs)
goto cleanup;
}
if (context_role_set(context,
if (!isObjectContext &&
context_role_set(context,
context_role_get(ourContext)) != 0) {
virReportSystemError(errno,
_("Unable to set SELinux context user '%s'"),
_("Unable to set SELinux context role '%s'"),
context_role_get(ourContext));
goto cleanup;
}
......@@ -421,7 +424,8 @@ virSecuritySELinuxGenSecurityLabel(virSecurityManagerPtr mgr,
if (!(def->seclabel.label =
virSecuritySELinuxGenNewContext(def->seclabel.baselabel ?
def->seclabel.baselabel :
data->domain_context, mcs)))
data->domain_context,
mcs, false)))
goto cleanup;
break;
......@@ -438,7 +442,7 @@ virSecuritySELinuxGenSecurityLabel(virSecurityManagerPtr mgr,
if (!def->seclabel.norelabel) {
if (!(def->seclabel.imagelabel =
virSecuritySELinuxGenNewContext(data->file_context, mcs)))
virSecuritySELinuxGenNewContext(data->file_context, mcs, true)))
goto cleanup;
}
......@@ -1639,7 +1643,8 @@ virSecuritySELinuxGenImageLabel(virSecurityManagerPtr mgr,
virReportOOMError();
goto cleanup;
}
if (!(label = virSecuritySELinuxGenNewContext(data->file_context, mcs)))
if (!(label = virSecuritySELinuxGenNewContext(data->file_context,
mcs, true)))
goto cleanup;
}
}
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册