summary refs log tree commit diff stats
path: root/results/classifier/zero-shot/105/vnc/1637447
blob: fd319f731ad1fef841c8918e9fbf325735c7fd56 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
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