On Thu, Sep 03, 2009 at 01:04:30PM +0100, Mark McLoughlin wrote: > Apart from DV's comments, ACK to patches 1-3 > > On Tue, 2009-09-01 at 16:28 +0100, Daniel P. Berrange wrote: > > * src/security.h: Driver API for relabelling host devices > > * src/security_selinux.c: Implement relabelling of PCI and USB > > devices > > * src/qemu_driver.c: Relabel USB/PCI devices before hotplug > > --- > > src/qemu_driver.c | 12 ++- > > src/security.h | 7 ++ > > src/security_selinux.c | 175 +++++++++++++++++++++++++++++++++++++++++++----- > > 3 files changed, 174 insertions(+), 20 deletions(-) > > > > diff --git a/src/qemu_driver.c b/src/qemu_driver.c > > index e9a09df..d75e28e 100644 > > --- a/src/qemu_driver.c > > +++ b/src/qemu_driver.c > > @@ -5498,6 +5498,9 @@ static int qemudDomainAttachHostDevice(virConnectPtr conn, > > > > if (qemuDomainSetDeviceOwnership(conn, driver, dev, 0) < 0) > > return -1; > > + if (driver->securityDriver && > > + driver->securityDriver->domainSetSecurityHostdevLabel(conn, vm, dev->data.hostdev) < 0) > > + return -1; > > > > switch (hostdev->source.subsys.type) { > > case VIR_DOMAIN_HOSTDEV_SUBSYS_TYPE_PCI: > > @@ -5566,9 +5569,6 @@ static int qemudDomainAttachDevice(virDomainPtr dom, > > } > > } > > > > - if (driver->securityDriver) > > - driver->securityDriver->domainSetSecurityImageLabel(dom->conn, vm, dev->data.disk); > > What's this about? The very same call is issued a few lines later :-) > > diff --git a/src/security_selinux.c b/src/security_selinux.c > > index 3b2e88f..5b7b038 100644 > > --- a/src/security_selinux.c > > +++ b/src/security_selinux.c > ... > > @@ -414,6 +427,126 @@ SELinuxSetSecurityImageLabel(virConnectPtr conn, > > return 0; > > } > > > > + > > +static int > > +SELinuxSetSecurityPCILabel(virConnectPtr conn, > > + pciDevice *dev ATTRIBUTE_UNUSED, > > + const char *file, void *opaque) > > +{ > > + virDomainObjPtr vm = opaque; > > + const virSecurityLabelDefPtr secdef = &vm->def->seclabel; > > + > > + return SELinuxSetFilecon(conn, file, secdef->imagelabel); > > +} > > + > > +static int > > +SELinuxSetSecurityHostdevLabel(virConnectPtr conn, > > + virDomainObjPtr vm, > > + virDomainHostdevDefPtr dev) > > + > > +{ > > + int ret = -1; > > + > > + if (dev->mode != VIR_DOMAIN_HOSTDEV_MODE_SUBSYS) > > + return 0; > > + > > + switch (dev->source.subsys.type) { > > + case VIR_DOMAIN_HOSTDEV_SUBSYS_TYPE_USB: > > + break; > > Either you're missing some code here, or I'm missing some > understanding :-) Bizarrely the code secretly moved itself into the next patch while I wasn't looking :-) Daniel -- |: Red Hat, Engineering, London -o- http://people.redhat.com/berrange/ :| |: http://libvirt.org -o- http://virt-manager.org -o- http://ovirt.org :| |: http://autobuild.org -o- http://search.cpan.org/~danberr/ :| |: GnuPG: 7D3B9505 -o- F3C9 553F A1DA 4AC2 5648 23C1 B3DF F742 7D3B 9505 :| -- Libvir-list mailing list Libvir-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvir-list