diff options
Diffstat (limited to 'results/classifier/118/review/1571')
| -rw-r--r-- | results/classifier/118/review/1571 | 72 |
1 files changed, 72 insertions, 0 deletions
diff --git a/results/classifier/118/review/1571 b/results/classifier/118/review/1571 new file mode 100644 index 00000000..be6fb06f --- /dev/null +++ b/results/classifier/118/review/1571 @@ -0,0 +1,72 @@ +architecture: 0.929 +performance: 0.905 +graphic: 0.891 +hypervisor: 0.872 +PID: 0.866 +device: 0.863 +ppc: 0.821 +files: 0.805 +register: 0.801 +TCG: 0.795 +virtual: 0.771 +debug: 0.745 +kernel: 0.684 +socket: 0.675 +risc-v: 0.619 +permissions: 0.597 +vnc: 0.587 +network: 0.582 +semantic: 0.556 +mistranslation: 0.533 +arm: 0.514 +assembly: 0.491 +boot: 0.476 +peripherals: 0.441 +VMM: 0.267 +i386: 0.209 +x86: 0.178 +user-level: 0.154 +KVM: 0.108 +-------------------- +hypervisor: 0.960 +virtual: 0.866 +debug: 0.569 +kernel: 0.513 +files: 0.157 +x86: 0.034 +TCG: 0.033 +register: 0.024 +semantic: 0.022 +architecture: 0.016 +KVM: 0.009 +PID: 0.008 +performance: 0.008 +i386: 0.007 +assembly: 0.006 +VMM: 0.005 +boot: 0.005 +arm: 0.005 +device: 0.004 +ppc: 0.003 +peripherals: 0.003 +user-level: 0.003 +risc-v: 0.002 +permissions: 0.001 +network: 0.001 +graphic: 0.001 +vnc: 0.001 +socket: 0.000 +mistranslation: 0.000 + +accel/hvf: Instance size not properly declared +Description of problem: +In [`include/sysemu/hvf.h`](https://gitlab.com/qemu-project/qemu/-/blob/master/include/sysemu/hvf.h#L36), `HVFState` is declared to have the QOM type `TYPE_HVF_ACCEL`; +However, when the type is registered, proper `instance_size` for it was [not declared](https://gitlab.com/qemu-project/qemu/-/blob/master/accel/hvf/hvf-accel-ops.c#L351). + +As a result, a bad workaround was introduced. That is, when [`hvf_accel_init`](https://gitlab.com/qemu-project/qemu/-/blob/master/accel/hvf/hvf-accel-ops.c#L329) is called from [`accel_init_machine`](https://gitlab.com/qemu-project/qemu/-/blob/master/accel/accel-softmmu.c#L33), an new instance of `HVFState` is allocated while we should have used the pre-allocated instance in `ms->accelerator` similar to [what KVM does](https://gitlab.com/qemu-project/qemu/-/blob/master/accel/kvm/kvm-all.c#L2381) (the code didn't do so since the allocated ([using `object_new_with_class`](https://gitlab.com/qemu-project/qemu/-/blob/master/softmmu/vl.c#L2218)) instance didn't allocate enough memory for `HVFState`). + +Eventhough the code wouldn't crash nor have any serious implication, this would leak an `AccelState` and attempts to manually manage accelerators would cause a buffer-overflow. +Steps to reproduce: +1. Run a HVF-accelerated VM +Additional information: + |