diff --git a/run.in b/run.in index 4371076ea9..1a379ddf37 100644 --- a/run.in +++ b/run.in @@ -55,7 +55,7 @@ export LD_LIBRARY_PATH export LIBVIRT_DRIVER_DIR="$b/src/.libs" export LIBVIRT_LOCK_MANAGER_PLUGIN_DIR="$b/src/.libs" -export VIRTLOCKD_PATH="$b/src/virtlockd" +export VIRTLOCKD_PATH="$b/src" export LIBVIRTD_PATH="$b/daemon" # This is a cheap way to find some use-after-free and uninitialized diff --git a/src/locking/lock_driver_lockd.c b/src/locking/lock_driver_lockd.c index afa3bac5b0..c67bda65bc 100644 --- a/src/locking/lock_driver_lockd.c +++ b/src/locking/lock_driver_lockd.c @@ -81,22 +81,6 @@ struct _virLockManagerLockDaemonDriver { static virLockManagerLockDaemonDriverPtr driver = NULL; -#define VIRTLOCKD_PATH SBINDIR "/virtlockd" - -static const char * -virLockManagerLockDaemonFindDaemon(void) -{ - const char *customDaemon = virGetEnvBlockSUID("VIRTLOCKD_PATH"); - - if (customDaemon) - return customDaemon; - - if (virFileIsExecutable(VIRTLOCKD_PATH)) - return VIRTLOCKD_PATH; - - return NULL; -} - static int virLockManagerLockDaemonLoadConfig(const char *configFile) { virConfPtr conf; @@ -266,8 +250,13 @@ static virNetClientPtr virLockManagerLockDaemonConnectionNew(bool privileged, if (!(lockdpath = virLockManagerLockDaemonPath(privileged))) goto error; - if (!privileged) - daemonPath = virLockManagerLockDaemonFindDaemon(); + if (!privileged && + !(daemonPath = virFileFindResourceFull("virtlockd", + NULL, NULL, + "src", + SBINDIR, + "VIRTLOCKD_PATH"))) + goto error; if (!(client = virNetClientNewUNIX(lockdpath, daemonPath != NULL,