diff options
Diffstat (limited to 'results/classifier/118/vnc/1637447')
| -rw-r--r-- | results/classifier/118/vnc/1637447 | 47 |
1 files changed, 47 insertions, 0 deletions
diff --git a/results/classifier/118/vnc/1637447 b/results/classifier/118/vnc/1637447 new file mode 100644 index 000000000..5a702f8d8 --- /dev/null +++ b/results/classifier/118/vnc/1637447 @@ -0,0 +1,47 @@ +vnc: 0.903 +network: 0.884 +device: 0.865 +socket: 0.784 +risc-v: 0.733 +performance: 0.699 +semantic: 0.673 +architecture: 0.631 +register: 0.617 +graphic: 0.616 +kernel: 0.605 +files: 0.586 +ppc: 0.553 +boot: 0.494 +arm: 0.483 +virtual: 0.465 +VMM: 0.414 +mistranslation: 0.409 +i386: 0.358 +TCG: 0.355 +PID: 0.354 +debug: 0.333 +x86: 0.325 +hypervisor: 0.307 +permissions: 0.296 +KVM: 0.295 +user-level: 0.278 +peripherals: 0.242 +assembly: 0.137 + +VNC/RFB: QEMU reports incorrect name (length) + +If the name of a machine (as set with the -name argument) has a length longer than 1024, (RFB) VNC clients will not receive a correct RFB ServerInit message. + +I suspect this is the problem: + +https://github.com/qemu/qemu/blob/master/ui/vnc.c#L2463 + +The return value of snprintf is used as the value for the name-length field in the ServerInit message. +This is problematic for names that were truncated to 1024, as the length will now be bigger than the actual name. + +I think a quick fix would be to simply report min(size,1024) to the client... + +The right fix here is to switch to use g_strdup_printf and avoid a fixed length stack buffer entirely. + +Fix has been committed: http://git.qemu.org/?p=qemu.git;a=commitdiff;h=97efe4f961dcf5a0126 + |