Commit fd546aba authored by Sean Christopherson's avatar Sean Christopherson
Browse files

KVM: selftests: Fix mostly theoretical leak of VM's binary stats FD

When allocating and freeing a VM's cached binary stats info, check for a
NULL descriptor, not a '0' file descriptor, as '0' is a legal FD.  E.g. in
the unlikely scenario the kernel installs the stats FD at entry '0',
selftests would reallocate on the next __vm_get_stat() and/or fail to free
the stats in kvm_vm_free().

Fixes: 83f6e109 ("KVM: selftests: Cache binary stats metadata for duration of test")
Link: https://lore.kernel.org/r/20250111005049.1247555-2-seanjc@google.com


Signed-off-by: default avatarSean Christopherson <seanjc@google.com>
parent dae7d81e
Loading
Loading
Loading
Loading
+2 −2
Original line number Diff line number Diff line
@@ -749,7 +749,7 @@ void kvm_vm_free(struct kvm_vm *vmp)
		return;

	/* Free cached stats metadata and close FD */
	if (vmp->stats_fd) {
	if (vmp->stats_desc) {
		free(vmp->stats_desc);
		close(vmp->stats_fd);
	}
@@ -2218,7 +2218,7 @@ void __vm_get_stat(struct kvm_vm *vm, const char *stat_name, uint64_t *data,
	size_t size_desc;
	int i;

	if (!vm->stats_fd) {
	if (!vm->stats_desc) {
		vm->stats_fd = vm_get_stats_fd(vm);
		read_stats_header(vm->stats_fd, &vm->stats_header);
		vm->stats_desc = read_stats_descriptors(vm->stats_fd,