diff options
Diffstat (limited to 'results/classifier/118/device/2805')
| -rw-r--r-- | results/classifier/118/device/2805 | 52 |
1 files changed, 52 insertions, 0 deletions
diff --git a/results/classifier/118/device/2805 b/results/classifier/118/device/2805 new file mode 100644 index 00000000..bc0be1f8 --- /dev/null +++ b/results/classifier/118/device/2805 @@ -0,0 +1,52 @@ +device: 0.940 +socket: 0.913 +files: 0.868 +performance: 0.823 +register: 0.787 +user-level: 0.774 +architecture: 0.772 +graphic: 0.768 +semantic: 0.766 +network: 0.764 +arm: 0.729 +debug: 0.717 +boot: 0.715 +VMM: 0.712 +kernel: 0.671 +vnc: 0.658 +PID: 0.650 +ppc: 0.641 +x86: 0.604 +virtual: 0.601 +peripherals: 0.597 +permissions: 0.595 +hypervisor: 0.580 +risc-v: 0.577 +i386: 0.538 +mistranslation: 0.516 +TCG: 0.511 +assembly: 0.434 +KVM: 0.190 + +vhost-device-snd does not report correctly the device conf size +Description of problem: +The vhost-user-snd frontend is incorrectly reporting the size of the device configuration space, which should be based on the features exposed by the device. For example, the `controls` field in the `virtio_snd_config` structure is optional and should only be included in the configuration size if the `VIRTIO_SND_F_CTLS` feature has been negotiated. + +This issue became apparent after commit `ab0c7fb2`, where `virtio_snd_config` was updated to include the `controls` field. The vhost-user-snd frontend, relying on this structure, started expecting `sizeof(virtio_snd_config)` when communicating with the backend, regardless of whether the `VIRTIO_SND_F_CTLS` feature was negotiated. As a result, any backend reporting a smaller configuration size—for example, one that does not support controls—cannot communicate with the frontend. We observed this problem in the vhost-device-sound rust-vmm device, which we partially fixed [here](https://github.com/rust-vmm/vhost-device/commit/8e7b7109316e1027548bc91cfcbb4b096b032c24). + +This behavior is incorrect because the configuration size should depend on the negotiated features. + +I am currently working on patch to fix this. +Steps to reproduce: +1. Run vhost-device-sound +```bash + cargo run --bin vhost-device-sound -- --socket=/tmp/vhost-sound.socket --backend=pipewire +``` +2. Run QEMU with the parameters above +3. In the guest run: +```bash +root@syzkaller:~# aplay /usr/share/sounds/alsa/Front_Left.wav +aplay: main:830: audio open error: No such file or directory +``` +Additional information: + |