On Fri, Aug 13, 2010 at 04:58:57PM -0500, Jamie Strandboge wrote:
Attached is 0001-apparmor-dont-ignore-open.patch
--
Jamie Strandboge |
http://www.canonical.com
Index: libvirt-0.8.3/src/security/virt-aa-helper.c
===================================================================
--- libvirt-0.8.3.orig/src/security/virt-aa-helper.c 2010-08-12 09:51:42.000000000 -0500
+++ libvirt-0.8.3/src/security/virt-aa-helper.c 2010-08-12 09:58:42.000000000 -0500
@@ -853,11 +853,25 @@
* careful than just ignoring them */
int ret = virDomainDiskDefForeachPath(ctl->def->disks[i],
ctl->allowDiskFormatProbing,
- true,
+ false,
add_file_path,
&buf);
- if (ret != 0)
+ /*
+ * If virDomainDiskDefForeachPath() fails, then exit with error,
+ * unless the disk doesn't exist, in which case we just skip it
+ * without error in order to preserve previous behavior.
+ */
+ if (ret != 0) {
+ if (ctl->def->disks[i] && ctl->def->disks[i]->src) {
+ if (!virFileExists(ctl->def->disks[i]->src)) {
+ continue;
+ } else {
+ vah_warning(ctl->def->disks[i]->src);
+ vah_warning(" skipped (bad disk format)");
+ }
+ }
goto clean;
+ }
Why do we need special behaviour to skip files which don't exist ?
If this is solely to keep the test suite happy, then IMHO the
fix should be in the test suite. Runtime production code shouldn't
have workarounds for test code.
Regards,
Daniel
--
|: Red Hat, Engineering, London -o-
http://people.redhat.com/berrange/ :|
|:
http://libvirt.org -o-
http://virt-manager.org -o-
http://deltacloud.org :|
|:
http://autobuild.org -o-
http://search.cpan.org/~danberr/ :|
|: GnuPG: 7D3B9505 -o- F3C9 553F A1DA 4AC2 5648 23C1 B3DF F742 7D3B 9505 :|