From: Peter Krempa Date: Tue, 18 Jul 2017 07:43:41 +0000 (+0200) Subject: security: apparmor: Properly link with storage driver in helper program X-Git-Tag: v3.6.0-rc1~134 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=5e515b542d7f0940396c74bf8f6cb337d5d0dcc5;p=thirdparty%2Flibvirt.git security: apparmor: Properly link with storage driver in helper program The refactor to split up storage driver into modules broke the apparmor helper program, since that did not initialize the storage driver properly and thus detection of the backing chain could not work. Register the storage driver backends explicitly. Unfortunately it's now necessary to link with the full storage driver to satisfy dependencies of the loadable modules. Reviewed-by: Christian Ehrhardt Reported-by: Christian Ehrhardt Tested-by: Christian Ehrhardt --- diff --git a/src/Makefile.am b/src/Makefile.am index 399d031dd8..e637dfd910 100644 --- a/src/Makefile.am +++ b/src/Makefile.am @@ -3281,7 +3281,7 @@ virt_aa_helper_LDADD = \ libvirt.la \ libvirt_conf.la \ libvirt_util.la \ - libvirt_driver_storage_impl.la \ + libvirt_driver_storage.la \ ../gnulib/lib/libgnu.la if WITH_DTRACE_PROBES virt_aa_helper_LDADD += libvirt_probes.lo diff --git a/src/security/virt-aa-helper.c b/src/security/virt-aa-helper.c index 6952720764..a751d6debe 100644 --- a/src/security/virt-aa-helper.c +++ b/src/security/virt-aa-helper.c @@ -56,6 +56,7 @@ #include "virgettext.h" #include "storage/storage_source.h" +#include "storage/storage_backend.h" #define VIR_FROM_THIS VIR_FROM_SECURITY @@ -926,6 +927,11 @@ get_files(vahControl * ctl) goto cleanup; } + if (virStorageBackendDriversRegister(false) < 0) { + vah_error(ctl, 0, _("failed to register storage driver backend")); + goto cleanup; + } + for (i = 0; i < ctl->def->ndisks; i++) { virDomainDiskDefPtr disk = ctl->def->disks[i]; @@ -1283,6 +1289,8 @@ main(int argc, char **argv) exit(EXIT_FAILURE); } + virFileActivateDirOverride(argv[0]); + /* Initialize the log system */ virLogSetFromEnv();