mirror of
https://gitlab.com/libvirt/libvirt.git
synced 2025-01-22 12:35:17 +00:00
Change QEMU capabilities cache to check ctime instead of mtime
Debian's package manager will preserve mtime timestamp on binaries from the time they are built, rather than installed. So if a user downgrades their QEMU dpkg, the libvirt capabilities cache will not refresh. The fix is to use ctime instead of mtime since it cannot be faked. Signed-off-by: Daniel P. Berrange <berrange@redhat.com>
This commit is contained in:
parent
10ec072545
commit
f5059a929e
@ -259,7 +259,7 @@ struct _virQEMUCaps {
|
||||
bool usedQMP;
|
||||
|
||||
char *binary;
|
||||
time_t mtime;
|
||||
time_t ctime;
|
||||
|
||||
virBitmapPtr flags;
|
||||
|
||||
@ -2796,7 +2796,7 @@ virQEMUCapsPtr virQEMUCapsNewForBinary(const char *binary,
|
||||
binary);
|
||||
goto error;
|
||||
}
|
||||
qemuCaps->mtime = sb.st_mtime;
|
||||
qemuCaps->ctime = sb.st_ctime;
|
||||
|
||||
/* Make sure the binary we are about to try exec'ing exists.
|
||||
* Technically we could catch the exec() failure, but that's
|
||||
@ -2838,7 +2838,7 @@ bool virQEMUCapsIsValid(virQEMUCapsPtr qemuCaps)
|
||||
if (stat(qemuCaps->binary, &sb) < 0)
|
||||
return false;
|
||||
|
||||
return sb.st_mtime == qemuCaps->mtime;
|
||||
return sb.st_ctime == qemuCaps->ctime;
|
||||
}
|
||||
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user