Commit 211c0189 authored by Sean Christopherson's avatar Sean Christopherson Committed by Paolo Bonzini
Browse files

KVM: selftests: Verify stats fd is usable after VM fd has been closed



Verify that VM and vCPU binary stats files are usable even after userspace
has put its last direct reference to the VM.  This is a regression test
for a UAF bug where KVM didn't gift the stats files a reference to the VM.

Signed-off-by: default avatarSean Christopherson <seanjc@google.com>
Message-Id: <20230711230131.648752-8-seanjc@google.com>
Signed-off-by: default avatarPaolo Bonzini <pbonzini@redhat.com>
parent 65f1f57f
Loading
Loading
Loading
Loading
+8 −2
Original line number Diff line number Diff line
@@ -252,6 +252,14 @@ int main(int argc, char *argv[])
			stats_test(vcpu_get_stats_fd(vcpus[i * max_vcpu + j]));
		}

		/*
		 * Close the VM fd and redo the stats tests.  KVM should gift a
		 * reference (to the VM) to each stats fd, i.e. stats should
		 * still be accessible even after userspace has put its last
		 * _direct_ reference to the VM.
		 */
		kvm_vm_free(vms[i]);

		stats_test(vm_stats_fds);
		for (j = 0; j < max_vcpu; ++j)
			stats_test(vcpu_stats_fds[j]);
@@ -259,8 +267,6 @@ int main(int argc, char *argv[])
		ksft_test_result_pass("vm%i\n", i);
	}

	for (i = 0; i < max_vm; ++i)
		kvm_vm_free(vms[i]);
	free(vms);
	free(vcpus);
	free(vcpu_stats_fds);