From 08deca621b995c8206c6f719699160675bd89fd2 Mon Sep 17 00:00:00 2001 From: El Date: Wed, 6 May 2026 12:43:21 +0000 Subject: [PATCH 1/2] VNC-361 Handle null clipboard data in vncSelection --- common/rfb/VNCServerST.cxx | 3 +++ unix/xserver/hw/vnc/vncSelection.c | 6 ++++++ 2 files changed, 9 insertions(+) diff --git a/common/rfb/VNCServerST.cxx b/common/rfb/VNCServerST.cxx index 951a96a..d64c222 100644 --- a/common/rfb/VNCServerST.cxx +++ b/common/rfb/VNCServerST.cxx @@ -593,6 +593,9 @@ void VNCServerST::sendBinaryClipboardData(const char* mime, const unsigned char void VNCServerST::getBinaryClipboardData(const char* mime, const unsigned char **data, unsigned *len) { + *data = nullptr; + *len = 0; + if (!clipboardClient) return; clipboardClient->getBinaryClipboardData(mime, data, len); diff --git a/unix/xserver/hw/vnc/vncSelection.c b/unix/xserver/hw/vnc/vncSelection.c index 103535f..bd7f457 100644 --- a/unix/xserver/hw/vnc/vncSelection.c +++ b/unix/xserver/hw/vnc/vncSelection.c @@ -417,6 +417,9 @@ static int vncConvertSelection(ClientPtr client, Atom selection, const unsigned char *data; unsigned len; vncGetBinaryClipboardData(dlp_get_mimetype(binatomidx), &data, &len); + if (data == NULL) + return BadMatch; + rc = dixChangeWindowProperty(serverClient, pWin, realProperty, xaBinclips[binatomidx], 8, PropModeReplace, len, (unsigned char *) data, TRUE); @@ -427,6 +430,9 @@ static int vncConvertSelection(ClientPtr client, Atom selection, unsigned len; vncGetBinaryClipboardData("text/plain", &data, &len); + if (data == NULL) + return BadMatch; + if ((target == xaSTRING) || (target == xaTEXT)) { char* latin1; latin1 = vncUTF8ToLatin1(data, (size_t)-1); From 226fc5dd5c20d310cbdecd2403c2009009d2fd8c Mon Sep 17 00:00:00 2001 From: El Date: Wed, 6 May 2026 18:49:37 +0000 Subject: [PATCH 2/2] VNC-361 Handle null clipboard data in vncSelection --- builder/dockerfile.opensuse_15.build | 5 ++--- builder/dockerfile.opensuse_15.rpm.build | 5 ++--- 2 files changed, 4 insertions(+), 6 deletions(-) diff --git a/builder/dockerfile.opensuse_15.build b/builder/dockerfile.opensuse_15.build index d7b1e72..78e660e 100644 --- a/builder/dockerfile.opensuse_15.build +++ b/builder/dockerfile.opensuse_15.build @@ -49,9 +49,8 @@ RUN zypper install -ny \ zlib-devel \ libva-devel -RUN useradd -u 1000 docker && \ - groupadd -g 1000 docker && \ - usermod -a -G docker docker +RUN groupadd -g 1000 docker && \ + useradd -u 1000 -g docker docker RUN ARCH=$(arch) && \ CMAKE_URL="https://cmake.org/files/v3.22/cmake-3.22.0" && \ diff --git a/builder/dockerfile.opensuse_15.rpm.build b/builder/dockerfile.opensuse_15.rpm.build index 591c54f..d121d41 100644 --- a/builder/dockerfile.opensuse_15.rpm.build +++ b/builder/dockerfile.opensuse_15.rpm.build @@ -20,8 +20,7 @@ COPY opensuse/kasmvncserver.spec /tmp RUN zypper -n install $(grep BuildRequires /tmp/*.spec | cut -d' ' -f2 | xargs) -RUN useradd -u 1000 -m -d /home/docker docker && \ - groupadd -g 1000 docker && \ - usermod -a -G docker docker +RUN groupadd -g 1000 docker && \ + useradd -u 1000 -g docker docker USER docker