提交 b9c8af4d 编写于 作者: D Daniel P. Berrange

selinux: convert to typesafe virConf accessors

Signed-off-by: NDaniel P. Berrange <berrange@redhat.com>
上级 740e4d70
...@@ -400,9 +400,6 @@ virSecuritySELinuxGenNewContext(const char *basecontext, ...@@ -400,9 +400,6 @@ virSecuritySELinuxGenNewContext(const char *basecontext,
static int static int
virSecuritySELinuxLXCInitialize(virSecurityManagerPtr mgr) virSecuritySELinuxLXCInitialize(virSecurityManagerPtr mgr)
{ {
virConfValuePtr scon = NULL;
virConfValuePtr tcon = NULL;
virConfValuePtr dcon = NULL;
virConfPtr selinux_conf; virConfPtr selinux_conf;
virSecuritySELinuxDataPtr data = virSecurityManagerGetPrivateData(mgr); virSecuritySELinuxDataPtr data = virSecurityManagerGetPrivateData(mgr);
...@@ -420,34 +417,35 @@ virSecuritySELinuxLXCInitialize(virSecurityManagerPtr mgr) ...@@ -420,34 +417,35 @@ virSecuritySELinuxLXCInitialize(virSecurityManagerPtr mgr)
if (!(selinux_conf = virConfReadFile(selinux_lxc_contexts_path(), 0))) if (!(selinux_conf = virConfReadFile(selinux_lxc_contexts_path(), 0)))
goto error; goto error;
scon = virConfGetValue(selinux_conf, "process"); if (virConfGetValueString(selinux_conf, "process", &data->domain_context) < 0)
if (! scon || scon->type != VIR_CONF_STRING || (! scon->str)) {
virReportSystemError(errno,
_("cannot read 'process' value from selinux lxc contexts file '%s'"),
selinux_lxc_contexts_path());
goto error; goto error;
}
tcon = virConfGetValue(selinux_conf, "file"); if (!data->domain_context) {
if (! tcon || tcon->type != VIR_CONF_STRING || (! tcon->str)) { virReportError(VIR_ERR_INTERNAL_ERROR,
virReportSystemError(errno, _("missing 'process' value in selinux lxc contexts file '%s'"),
_("cannot read 'file' value from selinux lxc contexts file '%s'"), selinux_lxc_contexts_path());
selinux_lxc_contexts_path());
goto error; goto error;
} }
dcon = virConfGetValue(selinux_conf, "content"); if (virConfGetValueString(selinux_conf, "file", &data->file_context) < 0)
if (! dcon || dcon->type != VIR_CONF_STRING || (! dcon->str)) { goto error;
virReportSystemError(errno,
_("cannot read 'content' value from selinux lxc contexts file '%s'"), if (!data->file_context) {
selinux_lxc_contexts_path()); virReportError(VIR_ERR_INTERNAL_ERROR,
_("missing 'file' value in selinux lxc contexts file '%s'"),
selinux_lxc_contexts_path());
goto error; goto error;
} }
if (VIR_STRDUP(data->domain_context, scon->str) < 0 || if (virConfGetValueString(selinux_conf, "content", &data->content_context) < 0)
VIR_STRDUP(data->file_context, tcon->str) < 0 || goto error;
VIR_STRDUP(data->content_context, dcon->str) < 0)
if (!data->content_context) {
virReportError(VIR_ERR_INTERNAL_ERROR,
_("missing 'content' value in selinux lxc contexts file '%s'"),
selinux_lxc_contexts_path());
goto error; goto error;
}
if (!(data->mcs = virHashCreate(10, NULL))) if (!(data->mcs = virHashCreate(10, NULL)))
goto error; goto error;
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册