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 <berrange@redhat.com>
This commit is contained in:
Peter Krempa 2017-07-26 21:57:23 +02:00
parent 5aec02dc37
commit 6cf7fc573f
2 changed files with 6 additions and 6 deletions

View File

@ -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

View File

@ -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];