diff options
Diffstat (limited to 'results/classifier/105/vnc/1637447')
| -rw-r--r-- | results/classifier/105/vnc/1637447 | 30 |
1 files changed, 30 insertions, 0 deletions
diff --git a/results/classifier/105/vnc/1637447 b/results/classifier/105/vnc/1637447 new file mode 100644 index 000000000..fd319f731 --- /dev/null +++ b/results/classifier/105/vnc/1637447 @@ -0,0 +1,30 @@ +vnc: 0.903 +network: 0.884 +device: 0.865 +socket: 0.784 +instruction: 0.769 +semantic: 0.673 +graphic: 0.616 +boot: 0.494 +mistranslation: 0.409 +other: 0.319 +KVM: 0.295 +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 + |