提交 4492ef7f 编写于 作者: G Guannan Ren

selinux: relabel tapfd in qemuPhysIfaceConnect

Relabeling tapfd right after the tap device is created.
qemuPhysIfaceConnect is common function called both for static
netdevs and for hotplug netdevs.
上级 8d75e47e
...@@ -170,12 +170,26 @@ qemuPhysIfaceConnect(virDomainDefPtr def, ...@@ -170,12 +170,26 @@ qemuPhysIfaceConnect(virDomainDefPtr def,
vmop, driver->stateDir, vmop, driver->stateDir,
virDomainNetGetActualBandwidth(net)); virDomainNetGetActualBandwidth(net));
if (rc >= 0) { if (rc >= 0) {
if (virSecurityManagerSetTapFDLabel(driver->securityManager,
def, rc) < 0)
goto error;
virDomainAuditNetDevice(def, net, res_ifname, true); virDomainAuditNetDevice(def, net, res_ifname, true);
VIR_FREE(net->ifname); VIR_FREE(net->ifname);
net->ifname = res_ifname; net->ifname = res_ifname;
} }
return rc; return rc;
error:
ignore_value(virNetDevMacVLanDeleteWithVPortProfile(
res_ifname, &net->mac,
virDomainNetGetActualDirectDev(net),
virDomainNetGetActualDirectMode(net),
virDomainNetGetActualVirtPortProfile(net),
driver->stateDir));
VIR_FREE(res_ifname);
return -1;
} }
...@@ -5446,10 +5460,6 @@ qemuBuildCommandLine(virConnectPtr conn, ...@@ -5446,10 +5460,6 @@ qemuBuildCommandLine(virConnectPtr conn,
if (tapfd < 0) if (tapfd < 0)
goto error; goto error;
if (virSecurityManagerSetTapFDLabel(driver->securityManager,
def, tapfd) < 0)
goto error;
last_good_net = i; last_good_net = i;
virCommandTransferFD(cmd, tapfd); virCommandTransferFD(cmd, tapfd);
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册