提交 e6908bfe 编写于 作者: P Petr Matousek 提交者: Gerd Hoffmann

vnc: sanitize bits_per_pixel from the client

bits_per_pixel that are less than 8 could result in accessing
non-initialized buffers later in the code due to the expectation
that bytes_per_pixel value that is used to initialize these buffers is
never zero.

To fix this check that bits_per_pixel from the client is one of the
values that the rfb protocol specification allows.

This is CVE-2014-7815.
Signed-off-by: NPetr Matousek <pmatouse@redhat.com>

[ kraxel: apply codestyle fix ]
Signed-off-by: NGerd Hoffmann <kraxel@redhat.com>
上级 3e9418e1
......@@ -2026,6 +2026,16 @@ static void set_pixel_format(VncState *vs,
return;
}
switch (bits_per_pixel) {
case 8:
case 16:
case 32:
break;
default:
vnc_client_error(vs);
return;
}
vs->client_pf.rmax = red_max;
vs->client_pf.rbits = hweight_long(red_max);
vs->client_pf.rshift = red_shift;
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册