]> xenbits.xensource.com Git - libvirt.git/commitdiff
qemusecuritytest: Call real virFileExists in mock
authorMichal Privoznik <mprivozn@redhat.com>
Tue, 9 Apr 2024 08:17:11 +0000 (10:17 +0200)
committerMichal Privoznik <mprivozn@redhat.com>
Tue, 9 Apr 2024 14:55:25 +0000 (16:55 +0200)
When I suggested to Jim to call real virFileExists() I forgot to
also suggest calling init_syms(). Without it, real_virFileExists
pointer might be left unset. And indeed, that's what we were
seeing on FreeBSD.

This effectively reverts commit 4b5cc57ed35dc24d11673dd3f04bfb8073c0340d.

Signed-off-by: Michal Privoznik <mprivozn@redhat.com>
Reviewed-by: Jiri Denemark <jdenemar@redhat.com>
Reviewed-by: Jim Fehlig <jfehlig@suse.com>
tests/qemusecuritymock.c

index dc8a893e9d55ff7f7021db4320152f4aca0af321..2dfd6c33a0539662e11ea1a6f49b733599785c1b 100644 (file)
@@ -66,6 +66,7 @@ static int (*real_close)(int fd);
 static int (*real_setfilecon_raw)(const char *path, const char *context);
 static int (*real_getfilecon_raw)(const char *path, char **context);
 #endif
+static bool (*real_virFileExists)(const char *file);
 
 
 /* Global mutex to avoid races */
@@ -123,6 +124,7 @@ init_syms(void)
     VIR_MOCK_REAL_INIT(setfilecon_raw);
     VIR_MOCK_REAL_INIT(getfilecon_raw);
 #endif
+    VIR_MOCK_REAL_INIT(virFileExists);
 
     /* Intentionally not calling init_hash() here */
 }
@@ -386,8 +388,11 @@ bool virFileExists(const char *path)
 {
     VIR_LOCK_GUARD lock = virLockGuardLock(&m);
 
-    if (getenv(ENVVAR) == NULL)
-        return access(path, F_OK) == 0;
+    if (getenv(ENVVAR) == NULL) {
+        init_syms();
+
+        return real_virFileExists(path);
+    }
 
     init_hash();
     if (virHashHasEntry(chown_paths, path))