pkgsrc-Changes archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
CVS commit: pkgsrc/net/libvncserver
Module Name: pkgsrc
Committed By: nia
Date: Sun May 4 09:47:19 UTC 2025
Modified Files:
pkgsrc/net/libvncserver: Makefile PLIST distinfo
Added Files:
pkgsrc/net/libvncserver/patches: patch-include_rfb_rfbproto.h
patch-src_common_sockets.c patch-src_libvncclient_listen.c
patch-src_libvncclient_rfbclient.c patch-src_libvncclient_sockets.c
patch-src_libvncclient_tls__openssl.c patch-src_libvncserver_main.c
patch-src_libvncserver_ws__decode.h
Removed Files:
pkgsrc/net/libvncserver/patches: patch-libvncserver_websockets.c
patch-rfb_rfbproto.h
Log Message:
libvncserver: Update to 0.9.15
This update fixes various bugs, some of which may be security
relevant. Also backport some perhaps-security-relevant patches
from the upstream repostiory.
Verified to build on FreeBSD, NetBSD, OpenBSD, illumos, macOS 13/15,
and Linux (retro & modern) by drecklypkg ci.
To generate a diff of this commit:
cvs rdiff -u -r1.50 -r1.51 pkgsrc/net/libvncserver/Makefile
cvs rdiff -u -r1.7 -r1.8 pkgsrc/net/libvncserver/PLIST
cvs rdiff -u -r1.22 -r1.23 pkgsrc/net/libvncserver/distinfo
cvs rdiff -u -r0 -r1.1 \
pkgsrc/net/libvncserver/patches/patch-include_rfb_rfbproto.h \
pkgsrc/net/libvncserver/patches/patch-src_common_sockets.c \
pkgsrc/net/libvncserver/patches/patch-src_libvncclient_listen.c \
pkgsrc/net/libvncserver/patches/patch-src_libvncclient_rfbclient.c \
pkgsrc/net/libvncserver/patches/patch-src_libvncclient_sockets.c \
pkgsrc/net/libvncserver/patches/patch-src_libvncclient_tls__openssl.c \
pkgsrc/net/libvncserver/patches/patch-src_libvncserver_main.c \
pkgsrc/net/libvncserver/patches/patch-src_libvncserver_ws__decode.h
cvs rdiff -u -r1.4 -r0 \
pkgsrc/net/libvncserver/patches/patch-libvncserver_websockets.c
cvs rdiff -u -r1.2 -r0 pkgsrc/net/libvncserver/patches/patch-rfb_rfbproto.h
Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.
Modified files:
Index: pkgsrc/net/libvncserver/Makefile
diff -u pkgsrc/net/libvncserver/Makefile:1.50 pkgsrc/net/libvncserver/Makefile:1.51
--- pkgsrc/net/libvncserver/Makefile:1.50 Thu Apr 24 14:15:26 2025
+++ pkgsrc/net/libvncserver/Makefile Sun May 4 09:47:18 2025
@@ -1,8 +1,7 @@
-# $NetBSD: Makefile,v 1.50 2025/04/24 14:15:26 wiz Exp $
+# $NetBSD: Makefile,v 1.51 2025/05/04 09:47:18 nia Exp $
-DISTNAME= libvncserver-LibVNCServer-0.9.13
-PKGNAME= libVNCServer-0.9.13
-PKGREVISION= 15
+DISTNAME= LibVNCServer-0.9.15
+PKGNAME= libVNCServer-0.9.15
CATEGORIES= net
MASTER_SITES= ${MASTER_SITE_GITHUB:=LibVNC/}
GITHUB_PROJECT= libvncserver
@@ -16,16 +15,16 @@ LICENSE= gnu-gpl-v2
# XXX doesn't really use c++ but cmake is being uncooperative
USE_LANGUAGES= c c++
USE_TOOLS+= pkg-config
-USE_CMAKE= yes
-PKGCONFIG_OVERRIDE+= libvncserver.pc.cmakein
-PKGCONFIG_OVERRIDE+= libvncclient.pc.cmakein
+PKGCONFIG_OVERRIDE+= src/libvncserver/libvncserver.pc.cmakein
+PKGCONFIG_OVERRIDE+= src/libvncserver/libvncclient.pc.cmakein
CMAKE_CONFIGURE_ARGS+= -DWITH_FFMPEG=OFF
CMAKE_CONFIGURE_ARGS+= -DWITH_GTK=OFF
+CMAKE_CONFIGURE_ARGS+= -DWITH_QT=OFF
CMAKE_CONFIGURE_ARGS+= -DWITH_SDL=OFF
CMAKE_CONFIGURE_ARGS+= -DWITH_SYSTEMD=OFF
-
+CMAKE_CONFIGURE_ARGS+= -DWITH_EXAMPLES=OFF
CMAKE_CONFIGURE_ARGS+= -DWITH_THREADS=ON
CMAKE_CONFIGURE_ARGS+= -DWITH_TIGHTVNC_FILETRANSFER=ON
CMAKE_CONFIGURE_ARGS+= -DWITH_WEBSOCKETS=ON
@@ -38,7 +37,7 @@ CMAKE_CONFIGURE_ARGS+= -DWITH_PNG=ON
LDFLAGS.SunOS+= -lsocket
.include "options.mk"
-
+.include "../../devel/cmake/build.mk"
.include "../../archivers/lzo/buildlink3.mk"
.include "../../devel/zlib/buildlink3.mk"
.include "../../graphics/png/buildlink3.mk"
Index: pkgsrc/net/libvncserver/PLIST
diff -u pkgsrc/net/libvncserver/PLIST:1.7 pkgsrc/net/libvncserver/PLIST:1.8
--- pkgsrc/net/libvncserver/PLIST:1.7 Fri Dec 18 23:25:59 2020
+++ pkgsrc/net/libvncserver/PLIST Sun May 4 09:47:18 2025
@@ -1,4 +1,4 @@
-@comment $NetBSD: PLIST,v 1.7 2020/12/18 23:25:59 nia Exp $
+@comment $NetBSD: PLIST,v 1.8 2025/05/04 09:47:18 nia Exp $
include/rfb/keysym.h
include/rfb/rfb.h
include/rfb/rfbclient.h
@@ -6,6 +6,10 @@ include/rfb/rfbconfig.h
include/rfb/rfbproto.h
include/rfb/rfbregion.h
include/rfb/threading.h
+lib/cmake/LibVNCServer/LibVNCServerConfig.cmake
+lib/cmake/LibVNCServer/LibVNCServerConfigVersion.cmake
+lib/cmake/LibVNCServer/LibVNCServerTargets-noconfig.cmake
+lib/cmake/LibVNCServer/LibVNCServerTargets.cmake
lib/libvncclient.so
lib/libvncclient.so.${PKGVERSION}
lib/libvncclient.so.1
Index: pkgsrc/net/libvncserver/distinfo
diff -u pkgsrc/net/libvncserver/distinfo:1.22 pkgsrc/net/libvncserver/distinfo:1.23
--- pkgsrc/net/libvncserver/distinfo:1.22 Sun Dec 25 18:29:50 2022
+++ pkgsrc/net/libvncserver/distinfo Sun May 4 09:47:18 2025
@@ -1,7 +1,13 @@
-$NetBSD: distinfo,v 1.22 2022/12/25 18:29:50 wiz Exp $
+$NetBSD: distinfo,v 1.23 2025/05/04 09:47:18 nia Exp $
-BLAKE2s (libvncserver-LibVNCServer-0.9.13.tar.gz) = cf0fe16cb1f7f3b453bb7fc45b063e6004dbe36cf0c51293fafb36c759a8edf8
-SHA512 (libvncserver-LibVNCServer-0.9.13.tar.gz) = 18b0a1698d32bbdbfe6f65f76130b2a95860e3cc76e8adb904269663698c7c0ae982f451fda1f25e5461f096045d40a89d9014258f439366d5b4feaa4999d643
-Size (libvncserver-LibVNCServer-0.9.13.tar.gz) = 567491 bytes
-SHA1 (patch-libvncserver_websockets.c) = eb4e50f8fcb8442dae54d1360e6950e2ebd4778b
-SHA1 (patch-rfb_rfbproto.h) = 114310232ec7a8abe8dadf3e7d2ba4a1afbcd9ef
+BLAKE2s (LibVNCServer-0.9.15.tar.gz) = a9e2b934cc203b94528eba8750bcafbabb2db53d1f684b3610f493af65ad71da
+SHA512 (LibVNCServer-0.9.15.tar.gz) = 3ad7e14eef3b591574714e320257ac465778e05bd157ddff09e48b990f35890bfa6883ce4ac027fcb08dccd96f721117d56aaee681482f7643cfee9adc59804b
+Size (LibVNCServer-0.9.15.tar.gz) = 600387 bytes
+SHA1 (patch-include_rfb_rfbproto.h) = 90334c854be6aa8239bee531b64d9fcb6f9c57f3
+SHA1 (patch-src_common_sockets.c) = bc391e43055f7f8d894cc307a10855a5e15b58bf
+SHA1 (patch-src_libvncclient_listen.c) = 541bf5a6ff3e29544c5257501922397698af2792
+SHA1 (patch-src_libvncclient_rfbclient.c) = c0f75e2fbd7d8efd087c84c57665e4c86a00415e
+SHA1 (patch-src_libvncclient_sockets.c) = 64dfb2ee1cc41cbe22780c9f248b2ff4b765c17b
+SHA1 (patch-src_libvncclient_tls__openssl.c) = 39cd79bae84a1bea4247320d60613c128bb6d294
+SHA1 (patch-src_libvncserver_main.c) = f63f395ec7e252be95f5f6900e119ff513327312
+SHA1 (patch-src_libvncserver_ws__decode.h) = 2b93554867c0e735ecff393a8977b8856ee26ce1
Added files:
Index: pkgsrc/net/libvncserver/patches/patch-include_rfb_rfbproto.h
diff -u /dev/null pkgsrc/net/libvncserver/patches/patch-include_rfb_rfbproto.h:1.1
--- /dev/null Sun May 4 09:47:19 2025
+++ pkgsrc/net/libvncserver/patches/patch-include_rfb_rfbproto.h Sun May 4 09:47:18 2025
@@ -0,0 +1,17 @@
+$NetBSD: patch-include_rfb_rfbproto.h,v 1.1 2025/05/04 09:47:18 nia Exp $
+
+Fix endianess detection on NetBSD
+
+--- include/rfb/rfbproto.h.orig 2025-05-04 07:48:23.564794224 +0000
++++ include/rfb/rfbproto.h
+@@ -78,8 +78,9 @@ typedef int8_t rfbBool;
+ #endif
+
+ #if LIBVNCSERVER_HAVE_ENDIAN_H
++# define _XOPEN_SOURCE
+ # include <endian.h>
+-# if __BYTE_ORDER == __BIG_ENDIAN
++# if BYTE_ORDER == BIG_ENDIAN
+ # define LIBVNCSERVER_WORDS_BIGENDIAN 1
+ # endif
+ #endif
Index: pkgsrc/net/libvncserver/patches/patch-src_common_sockets.c
diff -u /dev/null pkgsrc/net/libvncserver/patches/patch-src_common_sockets.c:1.1
--- /dev/null Sun May 4 09:47:19 2025
+++ pkgsrc/net/libvncserver/patches/patch-src_common_sockets.c Sun May 4 09:47:18 2025
@@ -0,0 +1,23 @@
+$NetBSD: patch-src_common_sockets.c,v 1.1 2025/05/04 09:47:18 nia Exp $
+
+From e7ee07ddd7a3015a5b059a884f18181f3bd27877 Mon Sep 17 00:00:00 2001
+From: Christian Beier <info%christianbeier.net@localhost>
+Date: Wed, 5 Mar 2025 21:44:01 +0100
+Subject: [PATCH] common: don't give invalid fd to FD_SET
+
+re #655
+
+--- src/common/sockets.c.orig 2024-12-22 09:54:53.000000000 +0000
++++ src/common/sockets.c
+@@ -60,6 +60,11 @@ rfbBool sock_wait_for_connected(int sock
+ timeout.tv_sec=timeout_seconds;
+ timeout.tv_usec=0;
+
++ if(socket == RFB_INVALID_SOCKET) {
++ errno = EBADF;
++ return FALSE;
++ }
++
+ FD_ZERO(&writefds);
+ FD_SET(socket, &writefds);
+ FD_ZERO(&exceptfds);
Index: pkgsrc/net/libvncserver/patches/patch-src_libvncclient_listen.c
diff -u /dev/null pkgsrc/net/libvncserver/patches/patch-src_libvncclient_listen.c:1.1
--- /dev/null Sun May 4 09:47:19 2025
+++ pkgsrc/net/libvncserver/patches/patch-src_libvncclient_listen.c Sun May 4 09:47:18 2025
@@ -0,0 +1,35 @@
+$NetBSD: patch-src_libvncclient_listen.c,v 1.1 2025/05/04 09:47:18 nia Exp $
+
+From b17c59257fd940af3fb076ae9c4cf88c40e133ac Mon Sep 17 00:00:00 2001
+From: Christian Beier <info%christianbeier.net@localhost>
+Date: Wed, 5 Mar 2025 21:48:52 +0100
+Subject: [PATCH] libvncclient: don't give invalid fds to FD_* macros
+
+re #655
+
+--- src/libvncclient/listen.c.orig 2024-12-22 09:54:53.000000000 +0000
++++ src/libvncclient/listen.c
+@@ -102,9 +102,9 @@ listenForIncomingConnections(rfbClient*
+ r = select(rfbMax(listenSocket, listen6Socket)+1, &fds, NULL, NULL, NULL);
+
+ if (r > 0) {
+- if (FD_ISSET(listenSocket, &fds))
++ if (listenSocket != RFB_INVALID_SOCKET && FD_ISSET(listenSocket, &fds))
+ client->sock = AcceptTcpConnection(client->listenSock);
+- else if (FD_ISSET(listen6Socket, &fds))
++ else if (listen6Socket != RFB_INVALID_SOCKET && FD_ISSET(listen6Socket, &fds))
+ client->sock = AcceptTcpConnection(client->listen6Sock);
+
+ if (client->sock == RFB_INVALID_SOCKET)
+@@ -201,9 +201,9 @@ listenForIncomingConnectionsNoFork(rfbCl
+
+ if (r > 0)
+ {
+- if (FD_ISSET(client->listenSock, &fds))
++ if (client->listenSock != RFB_INVALID_SOCKET && FD_ISSET(client->listenSock, &fds))
+ client->sock = AcceptTcpConnection(client->listenSock);
+- else if (FD_ISSET(client->listen6Sock, &fds))
++ else if (client->listen6Sock != RFB_INVALID_SOCKET && FD_ISSET(client->listen6Sock, &fds))
+ client->sock = AcceptTcpConnection(client->listen6Sock);
+
+ if (client->sock == RFB_INVALID_SOCKET)
Index: pkgsrc/net/libvncserver/patches/patch-src_libvncclient_rfbclient.c
diff -u /dev/null pkgsrc/net/libvncserver/patches/patch-src_libvncclient_rfbclient.c:1.1
--- /dev/null Sun May 4 09:47:19 2025
+++ pkgsrc/net/libvncserver/patches/patch-src_libvncclient_rfbclient.c Sun May 4 09:47:18 2025
@@ -0,0 +1,50 @@
+$NetBSD: patch-src_libvncclient_rfbclient.c,v 1.1 2025/05/04 09:47:18 nia Exp $
+
+From ae7656ef8ab2f61f70a58fafd88e527f35b4e8de Mon Sep 17 00:00:00 2001
+From: Jonathan Poelen <jonathan.poelen%gmail.com@localhost>
+Date: Thu, 6 Feb 2025 17:36:46 +0100
+Subject: [PATCH] libvncclient: fix memory leak in CompressClipData
+
+--- src/libvncclient/rfbclient.c.orig 2024-12-22 09:54:53.000000000 +0000
++++ src/libvncclient/rfbclient.c
+@@ -1815,26 +1815,26 @@ static int
+ CompressClipData(Bytef *dest, uLongf *destLen, Bytef *source, uLong sourceLen)
+ {
+ int ret;
+- z_stream *zs = (z_stream*)malloc(sizeof(z_stream));
+- memset(zs, 0, sizeof(z_stream));
++ z_stream zs;
++ memset(&zs, 0, sizeof(z_stream));
+
+- zs->zfree = Z_NULL;
+- zs->zalloc = Z_NULL;
+- zs->opaque = Z_NULL;
+- ret = deflateInit(zs, Z_DEFAULT_COMPRESSION);
++ zs.zfree = Z_NULL;
++ zs.zalloc = Z_NULL;
++ zs.opaque = Z_NULL;
++ ret = deflateInit(&zs, Z_DEFAULT_COMPRESSION);
+ if (ret == Z_OK) {
+- zs->avail_in = sourceLen;
+- zs->next_in = source;
+- zs->avail_out = *destLen;
+- zs->next_out = dest;
++ zs.avail_in = sourceLen;
++ zs.next_in = source;
++ zs.avail_out = *destLen;
++ zs.next_out = dest;
+
+ do {
+ // Using Z_SYNC_FLUSH instead of Z_FINISH is the key here.
+- ret = deflate(zs, Z_SYNC_FLUSH);
+- } while (ret >= 0 && zs->avail_in > 0);
++ ret = deflate(&zs, Z_SYNC_FLUSH);
++ } while (ret >= 0 && zs.avail_in > 0);
+
+- *destLen = zs->total_out;
+- deflateEnd(zs);
++ *destLen = zs.total_out;
++ deflateEnd(&zs);
+ }
+ return ret;
+ }
Index: pkgsrc/net/libvncserver/patches/patch-src_libvncclient_sockets.c
diff -u /dev/null pkgsrc/net/libvncserver/patches/patch-src_libvncclient_sockets.c:1.1
--- /dev/null Sun May 4 09:47:19 2025
+++ pkgsrc/net/libvncserver/patches/patch-src_libvncclient_sockets.c Sun May 4 09:47:18 2025
@@ -0,0 +1,34 @@
+$NetBSD: patch-src_libvncclient_sockets.c,v 1.1 2025/05/04 09:47:18 nia Exp $
+
+From ae7656ef8ab2f61f70a58fafd88e527f35b4e8de Mon Sep 17 00:00:00 2001
+From: Jonathan Poelen <jonathan.poelen%gmail.com@localhost>
+Date: Thu, 6 Feb 2025 17:36:46 +0100
+Subject: [PATCH] libvncclient: fix memory leak in CompressClipData
+
+--- src/libvncclient/sockets.c.orig 2024-12-22 09:54:53.000000000 +0000
++++ src/libvncclient/sockets.c
+@@ -296,6 +296,12 @@ WriteToRFBServer(rfbClient* client, cons
+ errno == ENOENT ||
+ #endif
+ errno == EAGAIN) {
++ if(client->sock == RFB_INVALID_SOCKET) {
++ errno = EBADF;
++ rfbClientErr("socket invalid\n");
++ return FALSE;
++ }
++
+ FD_ZERO(&fds);
+ FD_SET(client->sock,&fds);
+
+@@ -858,6 +864,11 @@ int WaitForMessage(rfbClient* client,uns
+ timeout.tv_sec=(usecs/1000000);
+ timeout.tv_usec=(usecs%1000000);
+
++ if(client->sock == RFB_INVALID_SOCKET) {
++ errno = EBADF;
++ return -1;
++ }
++
+ FD_ZERO(&fds);
+ FD_SET(client->sock,&fds);
+
Index: pkgsrc/net/libvncserver/patches/patch-src_libvncclient_tls__openssl.c
diff -u /dev/null pkgsrc/net/libvncserver/patches/patch-src_libvncclient_tls__openssl.c:1.1
--- /dev/null Sun May 4 09:47:19 2025
+++ pkgsrc/net/libvncserver/patches/patch-src_libvncclient_tls__openssl.c Sun May 4 09:47:18 2025
@@ -0,0 +1,21 @@
+$NetBSD: patch-src_libvncclient_tls__openssl.c,v 1.1 2025/05/04 09:47:18 nia Exp $
+
+From ae7656ef8ab2f61f70a58fafd88e527f35b4e8de Mon Sep 17 00:00:00 2001
+From: Jonathan Poelen <jonathan.poelen%gmail.com@localhost>
+Date: Thu, 6 Feb 2025 17:36:46 +0100
+Subject: [PATCH] libvncclient: fix memory leak in CompressClipData
+
+--- src/libvncclient/tls_openssl.c.orig 2024-12-22 09:54:53.000000000 +0000
++++ src/libvncclient/tls_openssl.c
+@@ -167,6 +167,11 @@ static int sock_read_ready(SSL *ssl, uin
+
+ FD_ZERO(&fds);
+
++ if(SSL_get_fd(ssl) == RFB_INVALID_SOCKET) {
++ errno = EBADF;
++ return -1;
++ }
++
+ FD_SET(SSL_get_fd(ssl), &fds);
+
+ tv.tv_sec = ms / 1000;
Index: pkgsrc/net/libvncserver/patches/patch-src_libvncserver_main.c
diff -u /dev/null pkgsrc/net/libvncserver/patches/patch-src_libvncserver_main.c:1.1
--- /dev/null Sun May 4 09:47:19 2025
+++ pkgsrc/net/libvncserver/patches/patch-src_libvncserver_main.c Sun May 4 09:47:19 2025
@@ -0,0 +1,14 @@
+$NetBSD: patch-src_libvncserver_main.c,v 1.1 2025/05/04 09:47:19 nia Exp $
+
+Fix build on OpenBSD.
+
+--- src/libvncserver/main.c.orig 2025-05-04 08:19:29.686890251 +0000
++++ src/libvncserver/main.c
+@@ -17,6 +17,7 @@
+ #include <rfb/rfbregion.h>
+ #include "private.h"
+
++#include <sys/socket.h>
+ #include <stdarg.h>
+ #include <errno.h>
+
Index: pkgsrc/net/libvncserver/patches/patch-src_libvncserver_ws__decode.h
diff -u /dev/null pkgsrc/net/libvncserver/patches/patch-src_libvncserver_ws__decode.h:1.1
--- /dev/null Sun May 4 09:47:19 2025
+++ pkgsrc/net/libvncserver/patches/patch-src_libvncserver_ws__decode.h Sun May 4 09:47:19 2025
@@ -0,0 +1,22 @@
+$NetBSD: patch-src_libvncserver_ws__decode.h,v 1.1 2025/05/04 09:47:19 nia Exp $
+
+Byteswap compat for SunOS.
+
+--- src/libvncserver/ws_decode.h.orig 2025-05-04 07:52:41.063877770 +0000
++++ src/libvncserver/ws_decode.h
+@@ -13,6 +13,15 @@
+ #define WS_HTON64(n) OSSwapHostToBigInt64(n)
+ #define WS_HTON16(n) OSSwapHostToBigInt16(n)
+
++#elif defined(__sun)
++
++#include <sys/byteorder.h>
++#define WS_NTOH64(n) BE_64(n)
++#define WS_NTOH32(n) BE_32(n)
++#define WS_NTOH16(n) BE_16(n)
++#define WS_HTON64(n) BE_64(n)
++#define WS_HTON16(n) BE_16(n)
++
+ #else
+
+ #ifdef LIBVNCSERVER_HAVE_ENDIAN_H
Home |
Main Index |
Thread Index |
Old Index