783807c0b9
The packets sent from the client especially for client cut text, are typically sent in two packets, one for the message containing the type and length and the other for the actual data. Sometimes the first message is read but we still don't have the data yet. We need to continue reading data to use the structure but this revealed a bug. The client event handler was calling memmove() with buffer_index as the size argument. This meant that it was copying the wrong amount of data, resulting in garbage at the end of the expected data. This patch fixes the problem by first subtracting buffer_index from buffer_len and then moving buffer_len worth of data, which is what was read into msg_buffer. The problem possibly manifested itself with random crashes, after reading random data. |
||
---|---|---|
bench | ||
doc | ||
examples | ||
include | ||
src | ||
test-images | ||
.gitignore | ||
COPYING | ||
README.md | ||
_clang-format | ||
meson.build | ||
meson_options.txt | ||
test-zrle.c |
README.md
Neat VNC
Introduction
This is a liberally licensed VNC server library that's intended to be fast and neat.
Goals
- Speed.
- Clean interface.
- Interoperability with the Freedesktop.org ecosystem.
Building
Runtime Dependencies
- pixman
- aml - https://github.com/any1/aml/
- zlib
- gnutls (optional)
- libturbojpeg (optional)
Build Dependencies
- meson
- pkg-config
- libdrm
To build just run:
meson build
ninja -C build
Client Compatibility
Name | ZRLE Encoding | Tight Encoding | Crypto & Auth | SSH Tunneling |
---|---|---|---|---|
bVNC | Yes | ? | Yes | Yes |
RealVNC | Yes | ? | ? | ? |
Remmina | Yes | Yes | ? | Yes |
TigerVNC | Yes | Yes | Yes | ? |
TightVNC | No | Yes | ? | ? |
UltraVNC | ? | ? | ? | ? |