From: Arkadiusz Miƛkiewicz Date: Wed, 21 Jan 2009 08:29:24 +0000 (+0000) Subject: - upstream fix X-Git-Tag: auto/th/qemu-0_9_1-25k~1 X-Git-Url: http://git.pld-linux.org/?a=commitdiff_plain;h=b03c1ed820e1db964230d10fa4322d8c9e2c902c;p=packages%2Fqemu.git - upstream fix Changed files: qemu-CVE-2008-2382.patch -> 1.1 --- diff --git a/qemu-CVE-2008-2382.patch b/qemu-CVE-2008-2382.patch new file mode 100644 index 0000000..f5b0458 --- /dev/null +++ b/qemu-CVE-2008-2382.patch @@ -0,0 +1,27 @@ +Fix CORE-2008-1210 VNC DoS + +If the client sends us a limit of zero, handle appropriately. + +Signed-off-by: Anthony Liguori + +diff --git a/vnc.c b/vnc.c +index 3a7d762..575fd68 100644 +--- a/vnc.c ++++ b/vnc.c +@@ -1503,10 +1503,13 @@ static int protocol_client_msg(VncState *vs, uint8_t *data, size_t len) + if (len == 1) + return 4; + +- if (len == 4) +- return 4 + (read_u16(data, 2) * 4); ++ if (len == 4) { ++ limit = read_u16(data, 2); ++ if (limit > 0) ++ return 4 + (limit * 4); ++ } else ++ limit = read_u16(data, 2); + +- limit = read_u16(data, 2); + for (i = 0; i < limit; i++) { + int32_t val = read_s32(data, 4 + (i * 4)); + memcpy(data + 4 + (i * 4), &val, sizeof(val));