summaryrefslogtreecommitdiff
path: root/user/tigervnc/0002-vncviewer-Ensure-buffer-always-has-0-termination.patch
diff options
context:
space:
mode:
Diffstat (limited to 'user/tigervnc/0002-vncviewer-Ensure-buffer-always-has-0-termination.patch')
-rw-r--r--user/tigervnc/0002-vncviewer-Ensure-buffer-always-has-0-termination.patch50
1 files changed, 50 insertions, 0 deletions
diff --git a/user/tigervnc/0002-vncviewer-Ensure-buffer-always-has-0-termination.patch b/user/tigervnc/0002-vncviewer-Ensure-buffer-always-has-0-termination.patch
new file mode 100644
index 000000000..3072ca020
--- /dev/null
+++ b/user/tigervnc/0002-vncviewer-Ensure-buffer-always-has-0-termination.patch
@@ -0,0 +1,50 @@
+From f01feaa6d235b40e659bf808ce66acc2b9a93da1 Mon Sep 17 00:00:00 2001
+From: "A. Wilcox" <AWilcox@Wilcox-Tech.com>
+Date: Wed, 20 Mar 2019 13:28:36 -0500
+Subject: [PATCH 2/2] vncviewer: Ensure buffer always has \0 termination
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+Building from the 1.9.0 tarball using GCC 8.3.0 on Linux yields the following:
+
+tigervnc-1.9.0/vncviewer/vncviewer.cxx: In function ‘int main(int, char**)’:
+tigervnc-1.9.0/vncviewer/vncviewer.cxx:527:14: error: ‘char* strncpy(char*, const char*, size_t)’ specified bound 64 equals destination size [-Werror=stringop-truncation]
+ strncpy(defaultServerName, configServerName, VNCSERVERNAMELEN);
+ ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+In function ‘void potentiallyLoadConfigurationFile(char*)’,
+ inlined from ‘int main(int, char**)’ at tigervnc-1.9.0/vncviewer/vncviewer.cxx:557:35:
+tigervnc-1.9.0/vncviewer/vncviewer.cxx:396:14: error: ‘char* strncpy(char*, const char*, size_t)’ specified bound 64 equals destination size [-Werror=stringop-truncation]
+ strncpy(vncServerName, newServerName, VNCSERVERNAMELEN);
+ ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+This commit ensures the buffer always has the null terminator.
+---
+ vncviewer/vncviewer.cxx | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/vncviewer/vncviewer.cxx b/vncviewer/vncviewer.cxx
+index d2fe7e00..8ccfe563 100644
+--- a/vncviewer/vncviewer.cxx
++++ b/vncviewer/vncviewer.cxx
+@@ -402,7 +402,7 @@ potentiallyLoadConfigurationFile(char *vncServerName)
+ newServerName = loadViewerParameters(vncServerName);
+ // This might be empty, but we still need to clear it so we
+ // don't try to connect to the filename
+- strncpy(vncServerName, newServerName, VNCSERVERNAMELEN);
++ strncpy(vncServerName, newServerName, VNCSERVERNAMELEN-1);
+ } catch (rfb::Exception& e) {
+ vlog.error("%s", e.str());
+ if (alertOnFatalError)
+@@ -533,7 +533,7 @@ int main(int argc, char** argv)
+ const char* configServerName;
+ configServerName = loadViewerParameters(NULL);
+ if (configServerName != NULL)
+- strncpy(defaultServerName, configServerName, VNCSERVERNAMELEN);
++ strncpy(defaultServerName, configServerName, VNCSERVERNAMELEN-1);
+ } catch (rfb::Exception& e) {
+ vlog.error("%s", e.str());
+ if (alertOnFatalError)
+--
+2.19.2
+