The only remaining reason that virt-login-shell was trying to
link against virstoragefile was because of a call to
virStorageFileFormatTypeToString when spawning a qemu-nbd
process - but setuid processes shouldn't be spawning qemu-nbd.
* src/util/virfile.c (virFileLoopDeviceAssociate)
(virFileNBDDeviceAssociate): Cripple in setuid builds.
* src/Makefile.am (libvirt_setuid_rpc_client_la_SOURCES):
Drop virstoragefile from the list.
Signed-off-by: Eric Blake <eblake(a)redhat.com>
---
src/Makefile.am | 1 -
src/util/virfile.c | 3 ++-
2 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/src/Makefile.am b/src/Makefile.am
index 38b2697..f6690b6 100644
--- a/src/Makefile.am
+++ b/src/Makefile.am
@@ -2069,7 +2069,6 @@ libvirt_setuid_rpc_client_la_SOURCES = \
util/virprocess.c \
util/virrandom.c \
util/virsocketaddr.c \
- util/virstoragefile.c \
util/virstring.c \
util/virtime.c \
util/virthread.c \
diff --git a/src/util/virfile.c b/src/util/virfile.c
index fcc65b1..a28cbf1 100644
--- a/src/util/virfile.c
+++ b/src/util/virfile.c
@@ -540,7 +540,8 @@ int virFileUpdatePerm(const char *path,
}
-#if defined(__linux__) && HAVE_DECL_LO_FLAGS_AUTOCLEAR
+#if defined(__linux__) && HAVE_DECL_LO_FLAGS_AUTOCLEAR && \
+ !defined(LIBVIRT_SETUID_RPC_CLIENT)
# if HAVE_DECL_LOOP_CTL_GET_FREE
--
1.9.0