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