mirror of
https://github.com/libvirt/libvirt.git
synced 2025-02-25 18:55:26 -06:00
conf: move seclabel for chardev source to the correct sturcture
Signed-off-by: Pavel Hrdina <phrdina@redhat.com> Reviewed-by: John Ferlan <jferlan@redhat.com>
This commit is contained in:
parent
6451b55ec3
commit
1763a2e7e2
@ -2142,12 +2142,21 @@ virDomainChrSourceDefCopy(virDomainChrSourceDefPtr dest,
|
|||||||
|
|
||||||
void virDomainChrSourceDefFree(virDomainChrSourceDefPtr def)
|
void virDomainChrSourceDefFree(virDomainChrSourceDefPtr def)
|
||||||
{
|
{
|
||||||
|
size_t i;
|
||||||
|
|
||||||
if (!def)
|
if (!def)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
virDomainChrSourceDefClear(def);
|
virDomainChrSourceDefClear(def);
|
||||||
virObjectUnref(def->privateData);
|
virObjectUnref(def->privateData);
|
||||||
|
|
||||||
|
if (def->seclabels) {
|
||||||
|
for (i = 0; i < def->nseclabels; i++)
|
||||||
|
virSecurityDeviceLabelDefFree(def->seclabels[i]);
|
||||||
|
VIR_FREE(def->seclabels);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
VIR_FREE(def);
|
VIR_FREE(def);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -2216,8 +2225,6 @@ virDomainChrSourceDefIsEqual(const virDomainChrSourceDef *src,
|
|||||||
|
|
||||||
void virDomainChrDefFree(virDomainChrDefPtr def)
|
void virDomainChrDefFree(virDomainChrDefPtr def)
|
||||||
{
|
{
|
||||||
size_t i;
|
|
||||||
|
|
||||||
if (!def)
|
if (!def)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
@ -2242,12 +2249,6 @@ void virDomainChrDefFree(virDomainChrDefPtr def)
|
|||||||
virDomainChrSourceDefFree(def->source);
|
virDomainChrSourceDefFree(def->source);
|
||||||
virDomainDeviceInfoClear(&def->info);
|
virDomainDeviceInfoClear(&def->info);
|
||||||
|
|
||||||
if (def->seclabels) {
|
|
||||||
for (i = 0; i < def->nseclabels; i++)
|
|
||||||
virSecurityDeviceLabelDefFree(def->seclabels[i]);
|
|
||||||
VIR_FREE(def->seclabels);
|
|
||||||
}
|
|
||||||
|
|
||||||
VIR_FREE(def);
|
VIR_FREE(def);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -10819,8 +10820,8 @@ virDomainChrSourceDefParseXML(virDomainChrSourceDefPtr def,
|
|||||||
if (chr_def) {
|
if (chr_def) {
|
||||||
xmlNodePtr saved_node = ctxt->node;
|
xmlNodePtr saved_node = ctxt->node;
|
||||||
ctxt->node = cur;
|
ctxt->node = cur;
|
||||||
if (virSecurityDeviceLabelDefParseXML(&chr_def->seclabels,
|
if (virSecurityDeviceLabelDefParseXML(&def->seclabels,
|
||||||
&chr_def->nseclabels,
|
&def->nseclabels,
|
||||||
vmSeclabels,
|
vmSeclabels,
|
||||||
nvmSeclabels,
|
nvmSeclabels,
|
||||||
ctxt,
|
ctxt,
|
||||||
@ -22625,19 +22626,11 @@ virDomainNetDefFormat(virBufferPtr buf,
|
|||||||
* output at " type='type'>". */
|
* output at " type='type'>". */
|
||||||
static int
|
static int
|
||||||
virDomainChrSourceDefFormat(virBufferPtr buf,
|
virDomainChrSourceDefFormat(virBufferPtr buf,
|
||||||
virDomainChrDefPtr chr_def,
|
|
||||||
virDomainChrSourceDefPtr def,
|
virDomainChrSourceDefPtr def,
|
||||||
bool tty_compat,
|
bool tty_compat,
|
||||||
unsigned int flags)
|
unsigned int flags)
|
||||||
{
|
{
|
||||||
const char *type = virDomainChrTypeToString(def->type);
|
const char *type = virDomainChrTypeToString(def->type);
|
||||||
size_t nseclabels = 0;
|
|
||||||
virSecurityDeviceLabelDefPtr *seclabels = NULL;
|
|
||||||
|
|
||||||
if (chr_def) {
|
|
||||||
nseclabels = chr_def->nseclabels;
|
|
||||||
seclabels = chr_def->seclabels;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!type) {
|
if (!type) {
|
||||||
virReportError(VIR_ERR_INTERNAL_ERROR,
|
virReportError(VIR_ERR_INTERNAL_ERROR,
|
||||||
@ -22675,7 +22668,8 @@ virDomainChrSourceDefFormat(virBufferPtr buf,
|
|||||||
def->data.file.append != VIR_TRISTATE_SWITCH_ABSENT)
|
def->data.file.append != VIR_TRISTATE_SWITCH_ABSENT)
|
||||||
virBufferAsprintf(buf, " append='%s'",
|
virBufferAsprintf(buf, " append='%s'",
|
||||||
virTristateSwitchTypeToString(def->data.file.append));
|
virTristateSwitchTypeToString(def->data.file.append));
|
||||||
virDomainSourceDefFormatSeclabel(buf, nseclabels, seclabels, flags);
|
virDomainSourceDefFormatSeclabel(buf, def->nseclabels,
|
||||||
|
def->seclabels, flags);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
@ -22730,7 +22724,8 @@ virDomainChrSourceDefFormat(virBufferPtr buf,
|
|||||||
virBufferAsprintf(buf, "<source mode='%s'",
|
virBufferAsprintf(buf, "<source mode='%s'",
|
||||||
def->data.nix.listen ? "bind" : "connect");
|
def->data.nix.listen ? "bind" : "connect");
|
||||||
virBufferEscapeString(buf, " path='%s'", def->data.nix.path);
|
virBufferEscapeString(buf, " path='%s'", def->data.nix.path);
|
||||||
virDomainSourceDefFormatSeclabel(buf, nseclabels, seclabels, flags);
|
virDomainSourceDefFormatSeclabel(buf, def->nseclabels,
|
||||||
|
def->seclabels, flags);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
@ -22779,7 +22774,7 @@ virDomainChrDefFormat(virBufferPtr buf,
|
|||||||
def->source->type == VIR_DOMAIN_CHR_TYPE_PTY &&
|
def->source->type == VIR_DOMAIN_CHR_TYPE_PTY &&
|
||||||
!(flags & VIR_DOMAIN_DEF_FORMAT_INACTIVE) &&
|
!(flags & VIR_DOMAIN_DEF_FORMAT_INACTIVE) &&
|
||||||
def->source->data.file.path);
|
def->source->data.file.path);
|
||||||
if (virDomainChrSourceDefFormat(buf, def, def->source, tty_compat, flags) < 0)
|
if (virDomainChrSourceDefFormat(buf, def->source, tty_compat, flags) < 0)
|
||||||
return -1;
|
return -1;
|
||||||
|
|
||||||
/* Format <target> block */
|
/* Format <target> block */
|
||||||
@ -22901,7 +22896,7 @@ virDomainSmartcardDefFormat(virBufferPtr buf,
|
|||||||
break;
|
break;
|
||||||
|
|
||||||
case VIR_DOMAIN_SMARTCARD_TYPE_PASSTHROUGH:
|
case VIR_DOMAIN_SMARTCARD_TYPE_PASSTHROUGH:
|
||||||
if (virDomainChrSourceDefFormat(buf, NULL, def->data.passthru, false,
|
if (virDomainChrSourceDefFormat(buf, def->data.passthru, false,
|
||||||
flags) < 0)
|
flags) < 0)
|
||||||
return -1;
|
return -1;
|
||||||
break;
|
break;
|
||||||
@ -23224,7 +23219,7 @@ virDomainRNGDefFormat(virBufferPtr buf,
|
|||||||
|
|
||||||
case VIR_DOMAIN_RNG_BACKEND_EGD:
|
case VIR_DOMAIN_RNG_BACKEND_EGD:
|
||||||
virBufferAdjustIndent(buf, 2);
|
virBufferAdjustIndent(buf, 2);
|
||||||
if (virDomainChrSourceDefFormat(buf, NULL, def->source.chardev,
|
if (virDomainChrSourceDefFormat(buf, def->source.chardev,
|
||||||
false, flags) < 0)
|
false, flags) < 0)
|
||||||
return -1;
|
return -1;
|
||||||
virBufferAdjustIndent(buf, -2);
|
virBufferAdjustIndent(buf, -2);
|
||||||
@ -24070,7 +24065,7 @@ virDomainRedirdevDefFormat(virBufferPtr buf,
|
|||||||
|
|
||||||
virBufferAsprintf(buf, "<redirdev bus='%s'", bus);
|
virBufferAsprintf(buf, "<redirdev bus='%s'", bus);
|
||||||
virBufferAdjustIndent(buf, 2);
|
virBufferAdjustIndent(buf, 2);
|
||||||
if (virDomainChrSourceDefFormat(buf, NULL, def->source, false, flags) < 0)
|
if (virDomainChrSourceDefFormat(buf, def->source, false, flags) < 0)
|
||||||
return -1;
|
return -1;
|
||||||
if (virDomainDeviceInfoFormat(buf, &def->info,
|
if (virDomainDeviceInfoFormat(buf, &def->info,
|
||||||
flags | VIR_DOMAIN_DEF_FORMAT_ALLOW_BOOT) < 0)
|
flags | VIR_DOMAIN_DEF_FORMAT_ALLOW_BOOT) < 0)
|
||||||
@ -26473,7 +26468,8 @@ virDomainDefGetSecurityLabelDef(virDomainDefPtr def, const char *model)
|
|||||||
|
|
||||||
|
|
||||||
virSecurityDeviceLabelDefPtr
|
virSecurityDeviceLabelDefPtr
|
||||||
virDomainChrDefGetSecurityLabelDef(virDomainChrDefPtr def, const char *model)
|
virDomainChrSourceDefGetSecurityLabelDef(virDomainChrSourceDefPtr def,
|
||||||
|
const char *model)
|
||||||
{
|
{
|
||||||
size_t i;
|
size_t i;
|
||||||
|
|
||||||
|
@ -1174,6 +1174,9 @@ struct _virDomainChrSourceDef {
|
|||||||
} data;
|
} data;
|
||||||
char *logfile;
|
char *logfile;
|
||||||
int logappend;
|
int logappend;
|
||||||
|
|
||||||
|
size_t nseclabels;
|
||||||
|
virSecurityDeviceLabelDefPtr *seclabels;
|
||||||
};
|
};
|
||||||
|
|
||||||
/* A complete character device, both host and domain views. */
|
/* A complete character device, both host and domain views. */
|
||||||
@ -1196,9 +1199,6 @@ struct _virDomainChrDef {
|
|||||||
virDomainChrSourceDefPtr source;
|
virDomainChrSourceDefPtr source;
|
||||||
|
|
||||||
virDomainDeviceInfo info;
|
virDomainDeviceInfo info;
|
||||||
|
|
||||||
size_t nseclabels;
|
|
||||||
virSecurityDeviceLabelDefPtr *seclabels;
|
|
||||||
};
|
};
|
||||||
|
|
||||||
typedef enum {
|
typedef enum {
|
||||||
@ -3103,7 +3103,8 @@ virSecurityLabelDefPtr
|
|||||||
virDomainDefGetSecurityLabelDef(virDomainDefPtr def, const char *model);
|
virDomainDefGetSecurityLabelDef(virDomainDefPtr def, const char *model);
|
||||||
|
|
||||||
virSecurityDeviceLabelDefPtr
|
virSecurityDeviceLabelDefPtr
|
||||||
virDomainChrDefGetSecurityLabelDef(virDomainChrDefPtr def, const char *model);
|
virDomainChrSourceDefGetSecurityLabelDef(virDomainChrSourceDefPtr def,
|
||||||
|
const char *model);
|
||||||
|
|
||||||
typedef const char* (*virEventActionToStringFunc)(int type);
|
typedef const char* (*virEventActionToStringFunc)(int type);
|
||||||
typedef int (*virEventActionFromStringFunc)(const char *type);
|
typedef int (*virEventActionFromStringFunc)(const char *type);
|
||||||
|
@ -1159,7 +1159,6 @@ virSecurityDACRestoreHostdevLabel(virSecurityManagerPtr mgr,
|
|||||||
static int
|
static int
|
||||||
virSecurityDACSetChardevLabel(virSecurityManagerPtr mgr,
|
virSecurityDACSetChardevLabel(virSecurityManagerPtr mgr,
|
||||||
virDomainDefPtr def,
|
virDomainDefPtr def,
|
||||||
virDomainChrDefPtr dev,
|
|
||||||
virDomainChrSourceDefPtr dev_source)
|
virDomainChrSourceDefPtr dev_source)
|
||||||
|
|
||||||
{
|
{
|
||||||
@ -1173,9 +1172,8 @@ virSecurityDACSetChardevLabel(virSecurityManagerPtr mgr,
|
|||||||
|
|
||||||
seclabel = virDomainDefGetSecurityLabelDef(def, SECURITY_DAC_NAME);
|
seclabel = virDomainDefGetSecurityLabelDef(def, SECURITY_DAC_NAME);
|
||||||
|
|
||||||
if (dev)
|
chr_seclabel = virDomainChrSourceDefGetSecurityLabelDef(dev_source,
|
||||||
chr_seclabel = virDomainChrDefGetSecurityLabelDef(dev,
|
SECURITY_DAC_NAME);
|
||||||
SECURITY_DAC_NAME);
|
|
||||||
|
|
||||||
if (chr_seclabel && !chr_seclabel->relabel)
|
if (chr_seclabel && !chr_seclabel->relabel)
|
||||||
return 0;
|
return 0;
|
||||||
@ -1245,7 +1243,6 @@ virSecurityDACSetChardevLabel(virSecurityManagerPtr mgr,
|
|||||||
static int
|
static int
|
||||||
virSecurityDACRestoreChardevLabel(virSecurityManagerPtr mgr,
|
virSecurityDACRestoreChardevLabel(virSecurityManagerPtr mgr,
|
||||||
virDomainDefPtr def ATTRIBUTE_UNUSED,
|
virDomainDefPtr def ATTRIBUTE_UNUSED,
|
||||||
virDomainChrDefPtr dev,
|
|
||||||
virDomainChrSourceDefPtr dev_source)
|
virDomainChrSourceDefPtr dev_source)
|
||||||
{
|
{
|
||||||
virSecurityDACDataPtr priv = virSecurityManagerGetPrivateData(mgr);
|
virSecurityDACDataPtr priv = virSecurityManagerGetPrivateData(mgr);
|
||||||
@ -1253,9 +1250,8 @@ virSecurityDACRestoreChardevLabel(virSecurityManagerPtr mgr,
|
|||||||
char *in = NULL, *out = NULL;
|
char *in = NULL, *out = NULL;
|
||||||
int ret = -1;
|
int ret = -1;
|
||||||
|
|
||||||
if (dev)
|
chr_seclabel = virDomainChrSourceDefGetSecurityLabelDef(dev_source,
|
||||||
chr_seclabel = virDomainChrDefGetSecurityLabelDef(dev,
|
SECURITY_DAC_NAME);
|
||||||
SECURITY_DAC_NAME);
|
|
||||||
|
|
||||||
if (chr_seclabel && !chr_seclabel->relabel)
|
if (chr_seclabel && !chr_seclabel->relabel)
|
||||||
return 0;
|
return 0;
|
||||||
@ -1304,12 +1300,12 @@ virSecurityDACRestoreChardevLabel(virSecurityManagerPtr mgr,
|
|||||||
|
|
||||||
static int
|
static int
|
||||||
virSecurityDACRestoreChardevCallback(virDomainDefPtr def,
|
virSecurityDACRestoreChardevCallback(virDomainDefPtr def,
|
||||||
virDomainChrDefPtr dev,
|
virDomainChrDefPtr dev ATTRIBUTE_UNUSED,
|
||||||
void *opaque)
|
void *opaque)
|
||||||
{
|
{
|
||||||
virSecurityManagerPtr mgr = opaque;
|
virSecurityManagerPtr mgr = opaque;
|
||||||
|
|
||||||
return virSecurityDACRestoreChardevLabel(mgr, def, dev, dev->source);
|
return virSecurityDACRestoreChardevLabel(mgr, def, dev->source);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -1322,7 +1318,7 @@ virSecurityDACSetTPMFileLabel(virSecurityManagerPtr mgr,
|
|||||||
|
|
||||||
switch (tpm->type) {
|
switch (tpm->type) {
|
||||||
case VIR_DOMAIN_TPM_TYPE_PASSTHROUGH:
|
case VIR_DOMAIN_TPM_TYPE_PASSTHROUGH:
|
||||||
ret = virSecurityDACSetChardevLabel(mgr, def, NULL,
|
ret = virSecurityDACSetChardevLabel(mgr, def,
|
||||||
&tpm->data.passthrough.source);
|
&tpm->data.passthrough.source);
|
||||||
break;
|
break;
|
||||||
case VIR_DOMAIN_TPM_TYPE_LAST:
|
case VIR_DOMAIN_TPM_TYPE_LAST:
|
||||||
@ -1342,8 +1338,8 @@ virSecurityDACRestoreTPMFileLabel(virSecurityManagerPtr mgr,
|
|||||||
|
|
||||||
switch (tpm->type) {
|
switch (tpm->type) {
|
||||||
case VIR_DOMAIN_TPM_TYPE_PASSTHROUGH:
|
case VIR_DOMAIN_TPM_TYPE_PASSTHROUGH:
|
||||||
ret = virSecurityDACRestoreChardevLabel(mgr, def, NULL,
|
ret = virSecurityDACRestoreChardevLabel(mgr, def,
|
||||||
&tpm->data.passthrough.source);
|
&tpm->data.passthrough.source);
|
||||||
break;
|
break;
|
||||||
case VIR_DOMAIN_TPM_TYPE_LAST:
|
case VIR_DOMAIN_TPM_TYPE_LAST:
|
||||||
break;
|
break;
|
||||||
@ -1506,12 +1502,12 @@ virSecurityDACRestoreAllLabel(virSecurityManagerPtr mgr,
|
|||||||
|
|
||||||
static int
|
static int
|
||||||
virSecurityDACSetChardevCallback(virDomainDefPtr def,
|
virSecurityDACSetChardevCallback(virDomainDefPtr def,
|
||||||
virDomainChrDefPtr dev,
|
virDomainChrDefPtr dev ATTRIBUTE_UNUSED,
|
||||||
void *opaque)
|
void *opaque)
|
||||||
{
|
{
|
||||||
virSecurityManagerPtr mgr = opaque;
|
virSecurityManagerPtr mgr = opaque;
|
||||||
|
|
||||||
return virSecurityDACSetChardevLabel(mgr, def, dev, dev->source);
|
return virSecurityDACSetChardevLabel(mgr, def, dev->source);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -811,8 +811,8 @@ virSecurityManagerCheckChardevLabel(virSecurityManagerPtr mgr,
|
|||||||
{
|
{
|
||||||
size_t i;
|
size_t i;
|
||||||
|
|
||||||
for (i = 0; i < dev->nseclabels; i++) {
|
for (i = 0; i < dev->source->nseclabels; i++) {
|
||||||
if (virSecurityManagerCheckModel(mgr, dev->seclabels[i]->model) < 0)
|
if (virSecurityManagerCheckModel(mgr, dev->source->seclabels[i]->model) < 0)
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -2179,7 +2179,6 @@ virSecuritySELinuxRestoreHostdevLabel(virSecurityManagerPtr mgr,
|
|||||||
static int
|
static int
|
||||||
virSecuritySELinuxSetChardevLabel(virSecurityManagerPtr mgr,
|
virSecuritySELinuxSetChardevLabel(virSecurityManagerPtr mgr,
|
||||||
virDomainDefPtr def,
|
virDomainDefPtr def,
|
||||||
virDomainChrDefPtr dev,
|
|
||||||
virDomainChrSourceDefPtr dev_source)
|
virDomainChrSourceDefPtr dev_source)
|
||||||
|
|
||||||
{
|
{
|
||||||
@ -2193,9 +2192,8 @@ virSecuritySELinuxSetChardevLabel(virSecurityManagerPtr mgr,
|
|||||||
if (!seclabel || !seclabel->relabel)
|
if (!seclabel || !seclabel->relabel)
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
if (dev)
|
chr_seclabel = virDomainChrSourceDefGetSecurityLabelDef(dev_source,
|
||||||
chr_seclabel = virDomainChrDefGetSecurityLabelDef(dev,
|
SECURITY_SELINUX_NAME);
|
||||||
SECURITY_SELINUX_NAME);
|
|
||||||
|
|
||||||
if (chr_seclabel && !chr_seclabel->relabel)
|
if (chr_seclabel && !chr_seclabel->relabel)
|
||||||
return 0;
|
return 0;
|
||||||
@ -2254,7 +2252,6 @@ virSecuritySELinuxSetChardevLabel(virSecurityManagerPtr mgr,
|
|||||||
static int
|
static int
|
||||||
virSecuritySELinuxRestoreChardevLabel(virSecurityManagerPtr mgr,
|
virSecuritySELinuxRestoreChardevLabel(virSecurityManagerPtr mgr,
|
||||||
virDomainDefPtr def,
|
virDomainDefPtr def,
|
||||||
virDomainChrDefPtr dev,
|
|
||||||
virDomainChrSourceDefPtr dev_source)
|
virDomainChrSourceDefPtr dev_source)
|
||||||
|
|
||||||
{
|
{
|
||||||
@ -2267,9 +2264,8 @@ virSecuritySELinuxRestoreChardevLabel(virSecurityManagerPtr mgr,
|
|||||||
if (!seclabel || !seclabel->relabel)
|
if (!seclabel || !seclabel->relabel)
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
if (dev)
|
chr_seclabel = virDomainChrSourceDefGetSecurityLabelDef(dev_source,
|
||||||
chr_seclabel = virDomainChrDefGetSecurityLabelDef(dev,
|
SECURITY_SELINUX_NAME);
|
||||||
SECURITY_SELINUX_NAME);
|
|
||||||
if (chr_seclabel && !chr_seclabel->relabel)
|
if (chr_seclabel && !chr_seclabel->relabel)
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
@ -2318,12 +2314,12 @@ virSecuritySELinuxRestoreChardevLabel(virSecurityManagerPtr mgr,
|
|||||||
|
|
||||||
static int
|
static int
|
||||||
virSecuritySELinuxRestoreSecurityChardevCallback(virDomainDefPtr def,
|
virSecuritySELinuxRestoreSecurityChardevCallback(virDomainDefPtr def,
|
||||||
virDomainChrDefPtr dev,
|
virDomainChrDefPtr dev ATTRIBUTE_UNUSED,
|
||||||
void *opaque)
|
void *opaque)
|
||||||
{
|
{
|
||||||
virSecurityManagerPtr mgr = opaque;
|
virSecurityManagerPtr mgr = opaque;
|
||||||
|
|
||||||
return virSecuritySELinuxRestoreChardevLabel(mgr, def, dev, dev->source);
|
return virSecuritySELinuxRestoreChardevLabel(mgr, def, dev->source);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -2346,7 +2342,7 @@ virSecuritySELinuxRestoreSecuritySmartcardCallback(virDomainDefPtr def,
|
|||||||
return virSecuritySELinuxRestoreFileLabel(mgr, database);
|
return virSecuritySELinuxRestoreFileLabel(mgr, database);
|
||||||
|
|
||||||
case VIR_DOMAIN_SMARTCARD_TYPE_PASSTHROUGH:
|
case VIR_DOMAIN_SMARTCARD_TYPE_PASSTHROUGH:
|
||||||
return virSecuritySELinuxRestoreChardevLabel(mgr, def, NULL, dev->data.passthru);
|
return virSecuritySELinuxRestoreChardevLabel(mgr, def, dev->data.passthru);
|
||||||
|
|
||||||
default:
|
default:
|
||||||
virReportError(VIR_ERR_INTERNAL_ERROR,
|
virReportError(VIR_ERR_INTERNAL_ERROR,
|
||||||
@ -2707,12 +2703,12 @@ virSecuritySELinuxClearSocketLabel(virSecurityManagerPtr mgr ATTRIBUTE_UNUSED,
|
|||||||
|
|
||||||
static int
|
static int
|
||||||
virSecuritySELinuxSetSecurityChardevCallback(virDomainDefPtr def,
|
virSecuritySELinuxSetSecurityChardevCallback(virDomainDefPtr def,
|
||||||
virDomainChrDefPtr dev,
|
virDomainChrDefPtr dev ATTRIBUTE_UNUSED,
|
||||||
void *opaque)
|
void *opaque)
|
||||||
{
|
{
|
||||||
virSecurityManagerPtr mgr = opaque;
|
virSecurityManagerPtr mgr = opaque;
|
||||||
|
|
||||||
return virSecuritySELinuxSetChardevLabel(mgr, def, dev, dev->source);
|
return virSecuritySELinuxSetChardevLabel(mgr, def, dev->source);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -2736,7 +2732,7 @@ virSecuritySELinuxSetSecuritySmartcardCallback(virDomainDefPtr def,
|
|||||||
return virSecuritySELinuxSetFilecon(mgr, database, data->content_context);
|
return virSecuritySELinuxSetFilecon(mgr, database, data->content_context);
|
||||||
|
|
||||||
case VIR_DOMAIN_SMARTCARD_TYPE_PASSTHROUGH:
|
case VIR_DOMAIN_SMARTCARD_TYPE_PASSTHROUGH:
|
||||||
return virSecuritySELinuxSetChardevLabel(mgr, def, NULL,
|
return virSecuritySELinuxSetChardevLabel(mgr, def,
|
||||||
dev->data.passthru);
|
dev->data.passthru);
|
||||||
|
|
||||||
default:
|
default:
|
||||||
|
Loading…
Reference in New Issue
Block a user