|
@@ -1506,6 +1506,10 @@ static int kvm_dev_ioctl_get_supported_cpuid(struct kvm_cpuid2 *cpuid,
|
|
|
for (func = 0x80000001; func <= limit && nent < cpuid->nent; ++func)
|
|
|
do_cpuid_ent(&cpuid_entries[nent], func, 0,
|
|
|
&nent, cpuid->nent);
|
|
|
+ r = -E2BIG;
|
|
|
+ if (nent >= cpuid->nent)
|
|
|
+ goto out_free;
|
|
|
+
|
|
|
r = -EFAULT;
|
|
|
if (copy_to_user(entries, cpuid_entries,
|
|
|
nent * sizeof(struct kvm_cpuid_entry2)))
|