From: Peter Krempa Date: Wed, 26 Jul 2017 19:57:23 +0000 (+0200) Subject: security: apparmor: load the storage driver dynamically X-Git-Tag: v3.6.0-rc1~2 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=6cf7fc573f8c03530fb9db18dca61243fa619feb;p=thirdparty%2Flibvirt.git security: apparmor: load the storage driver dynamically In commit 5e515b542d I've attempted to fix the inability to access storage from the apparmor helper program by linking with the storage driver. By linking with the .so the linker complains that it's not portable. Fix this by loading the module dynamically as we are supposed to do. Reviewed-by: Daniel P. Berrange --- diff --git a/src/Makefile.am b/src/Makefile.am index 471be40d17..b8e8754829 100644 --- a/src/Makefile.am +++ b/src/Makefile.am @@ -3124,7 +3124,7 @@ virt_aa_helper_LDADD = \ libvirt.la \ libvirt_conf.la \ libvirt_util.la \ - libvirt_driver_storage.la \ + libvirt_driver_storage_impl.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 a751d6debe..35dcb35bc4 100644 --- a/src/security/virt-aa-helper.c +++ b/src/security/virt-aa-helper.c @@ -41,6 +41,7 @@ #include "viralloc.h" #include "vircommand.h" #include "virlog.h" +#include "driver.h" #include "security_driver.h" #include "security_apparmor.h" @@ -56,7 +57,6 @@ #include "virgettext.h" #include "storage/storage_source.h" -#include "storage/storage_backend.h" #define VIR_FROM_THIS VIR_FROM_SECURITY @@ -927,10 +927,10 @@ get_files(vahControl * ctl) goto cleanup; } - if (virStorageBackendDriversRegister(false) < 0) { - vah_error(ctl, 0, _("failed to register storage driver backend")); - goto cleanup; - } + /* load the storage driver so that backing store can be accessed */ +#ifdef WITH_STORAGE + virDriverLoadModule("storage", "storageRegister"); +#endif for (i = 0; i < ctl->def->ndisks; i++) { virDomainDiskDefPtr disk = ctl->def->disks[i];