A liberally licensed VNC server library with a clean interface
 
 
 
Go to file
Scott Moreau 783807c0b9 server: Fix possible crash on fragmented packet messages
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.
2020-09-21 21:15:45 +00:00
bench Build benchmarks again 2020-05-27 21:59:34 +00:00
doc Add a description document for tight encoding 2019-12-29 21:35:38 +00:00
examples examples: Make all functions static 2020-07-26 13:52:00 +00:00
include server: Add remaining support for simple copy/paste 2020-09-21 21:15:45 +00:00
src server: Fix possible crash on fragmented packet messages 2020-09-21 21:15:45 +00:00
test-images Add a file to show origin of test images 2019-09-07 16:21:10 +00:00
.gitignore .gitignore: Add subprojects 2020-03-16 20:08:48 +00:00
COPYING COPYING: The year is 2020 2020-01-29 19:49:11 +00:00
README.md README: Remove text about beta release 2020-07-26 13:49:00 +00:00
_clang-format Add clang-format settings 2019-10-20 21:42:33 +00:00
meson.build Bake version info into library 2020-07-26 11:43:29 +00:00
meson_options.txt Remove optimisation flags 2020-07-26 11:43:29 +00:00
test-zrle.c Create unit test for zrle 2019-08-17 17:12:17 +00:00

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

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 ? ? ? ?