[X2Go-Commits] [nx-libs] 01/29: Dialog.c, Display.c, Font.c, NXdixfonts.c: don't use hardcoded string buffer lengths

git-admin at x2go.org git-admin at x2go.org
Sun Jan 7 01:30:58 CET 2018


This is an automated email from the git hooks/post-receive script.

x2go pushed a commit to branch 3.6.x
in repository nx-libs.

commit 5987a7b1af09e97271be3da74d336a64435e759a
Author: Ulrich Sibiller <uli42 at gmx.de>
Date:   Thu Nov 23 21:25:26 2017 +0100

    Dialog.c,Display.c,Font.c,NXdixfonts.c: don't use hardcoded string buffer lengths
---
 nx-X11/programs/Xserver/hw/nxagent/Dialog.c     | 17 +++++++----------
 nx-X11/programs/Xserver/hw/nxagent/Display.c    |  6 +++---
 nx-X11/programs/Xserver/hw/nxagent/Font.c       |  7 ++++---
 nx-X11/programs/Xserver/hw/nxagent/NXdixfonts.c |  8 ++++----
 4 files changed, 18 insertions(+), 20 deletions(-)

diff --git a/nx-X11/programs/Xserver/hw/nxagent/Dialog.c b/nx-X11/programs/Xserver/hw/nxagent/Dialog.c
index b7852a0..df6bb1c 100644
--- a/nx-X11/programs/Xserver/hw/nxagent/Dialog.c
+++ b/nx-X11/programs/Xserver/hw/nxagent/Dialog.c
@@ -279,15 +279,15 @@ void nxagentLaunchDialog(DialogType dialogType)
 
   if (dialogType == DIALOG_FAILED_RECONNECTION)
   {
-    strncpy(dialogDisplay, nxagentDisplayName, 255);
+    strncpy(dialogDisplay, nxagentDisplayName, sizeof(dialogDisplay) - 1);
   }
   else
   {
     strcpy(dialogDisplay, ":");
-    strncat(dialogDisplay, display, 254);
+    strncat(dialogDisplay, display, sizeof(dialogDisplay) - 1 - 1);
   }
 
-  *(dialogDisplay + 255) = '\0';
+  dialogDisplay[sizeof(dialogDisplay) - 1] = '\0';
 
   /*
    * We don't want to receive SIGCHLD
@@ -308,7 +308,7 @@ void nxagentLaunchDialog(DialogType dialogType)
               DECODE_DIALOG_TYPE(dialogType), *pid, dialogDisplay);
   #endif
 
-  *dialogDisplay = '\0';
+  dialogDisplay[0] = '\0';
 
   /*
    * Restore the previous set of
@@ -320,8 +320,7 @@ void nxagentLaunchDialog(DialogType dialogType)
 
 void nxagentPulldownDialog(Window wid)
 {
-  snprintf(nxagentPulldownWindow, 15, "%ld", (long int) wid);
-  nxagentPulldownWindow[15] = 0;
+  snprintf(nxagentPulldownWindow, sizeof(nxagentPulldownWindow), "%ld", (long int) wid);
 
   #ifdef TEST
   fprintf(stderr, "nxagentPulldownDialog: Going to launch pulldown "
@@ -330,7 +329,7 @@ void nxagentPulldownDialog(Window wid)
 
   nxagentLaunchDialog(DIALOG_PULLDOWN);
 
-  nxagentPulldownWindow[0] = 0;
+  nxagentPulldownWindow[0] = '\0';
 }
 
 void nxagentFailedReconnectionDialog(int alert, char *error)
@@ -372,9 +371,7 @@ void nxagentFailedReconnectionDialog(int alert, char *error)
     int status;
     int options = 0;
 
-    snprintf(nxagentFailedReconnectionMessage, 255, "Reconnection failed: %s", error);
-
-    *(nxagentFailedReconnectionMessage + 255) = '\0';
+    snprintf(nxagentFailedReconnectionMessage, sizeof(nxagentFailedReconnectionMessage), "Reconnection failed: %s", error);
 
     nxagentLaunchDialog(DIALOG_FAILED_RECONNECTION);
 
diff --git a/nx-X11/programs/Xserver/hw/nxagent/Display.c b/nx-X11/programs/Xserver/hw/nxagent/Display.c
index 4930bae..5943e53 100644
--- a/nx-X11/programs/Xserver/hw/nxagent/Display.c
+++ b/nx-X11/programs/Xserver/hw/nxagent/Display.c
@@ -1150,9 +1150,9 @@ void nxagentOpenDisplay(int argc, char *argv[])
 
   if (*nxagentDisplayName == '\0')
   {
-    strncpy(nxagentDisplayName, XDisplayName(NULL), 1023);
+    strncpy(nxagentDisplayName, XDisplayName(NULL), sizeof(nxagentDisplayName) - 1);
 
-    nxagentDisplayName[1023] = '\0';
+    nxagentDisplayName[sizeof(nxagentDisplayName) - 1] = '\0';
   }
 
   nxagentCloseDisplay();
@@ -1862,7 +1862,7 @@ static FILE *nxagentLookForIconFile(char *iconName, const char *permission,
       singlePath[strlen(singlePath)- 1] = 0;
     }
 
-    if (strlen(singlePath) + strlen(iconName) + 1 < PATH_MAX)
+    if (strlen(singlePath) + strlen(iconName) + 1 < sizeof(singlePath)<)
     {
       strncat(singlePath, slash, 1);
       strcat(singlePath, iconName);
diff --git a/nx-X11/programs/Xserver/hw/nxagent/Font.c b/nx-X11/programs/Xserver/hw/nxagent/Font.c
index 3b35a8b..c7fcaf3 100644
--- a/nx-X11/programs/Xserver/hw/nxagent/Font.c
+++ b/nx-X11/programs/Xserver/hw/nxagent/Font.c
@@ -1406,15 +1406,16 @@ Bool nxagentDisconnectAllFonts()
 
 static Bool nxagentGetFontServerPath(char * fontServerPath)
 {
-  char path[256];
+  /* ensure path is no longer than fontServerPath */
+  char path[256] = {0};
 
-  if (NXGetFontParameters(nxagentDisplay, 256, path) == True)
+  if (NXGetFontParameters(nxagentDisplay, sizeof(path), path) == True)
   {
     if (*path != '\0')
     {
       strncpy(fontServerPath, path + 1, *path);
 
-      *(fontServerPath + *path) = '\0';
+      fontServerPath[*path] = '\0';
 
       #ifdef TEST
       fprintf(stderr, "nxagentGetFontServerPath: Got path [%s].\n",
diff --git a/nx-X11/programs/Xserver/hw/nxagent/NXdixfonts.c b/nx-X11/programs/Xserver/hw/nxagent/NXdixfonts.c
index 49d8648..db555d5 100644
--- a/nx-X11/programs/Xserver/hw/nxagent/NXdixfonts.c
+++ b/nx-X11/programs/Xserver/hw/nxagent/NXdixfonts.c
@@ -121,7 +121,7 @@ static const char *_NXGetFontPath(const char *path)
 
     if (fontEnv != NULL && *fontEnv != '\0')
     {
-        if (strlen(fontEnv) + 1 > 1024)
+        if (strlen(fontEnv) + 1 > sizeof(_NXFontPath))
         {
 #ifdef NX_TRANS_TEST
             fprintf(stderr, "_NXGetFontPath: WARNING! Maximum length of font path exceeded.\n");
@@ -140,8 +140,8 @@ static const char *_NXGetFontPath(const char *path)
 
 _NXGetFontPathError:
 
-    strncpy(_NXFontPath, path, 1023);
-    _NXFontPath[1023] = '\0';
+    strncpy(_NXFontPath, path, sizeof(_NXFontPath) - 1);
+    _NXFontPath[sizeof(_NXFontPath) - 1] = '\0';
 
 #ifdef NX_TRANS_TEST
     fprintf(stderr, "_NXGetFontPath: Using default font path [%s].\n", _NXFontPath);
@@ -199,7 +199,7 @@ doOpenFont(ClientPtr client, OFclosurePtr c)
 	BitmapFormatScanlineUnit8;
 
 
-    nxagentOrigFontNameLen = (c -> origFontNameLen < 256) ? c -> origFontNameLen : 255;
+    nxagentOrigFontNameLen = (c -> origFontNameLen < sizeof(nxagentOrigFontName) ? c -> origFontNameLen : sizeof(nxagentOrigFontName) - 1);
 
     memcpy(nxagentOrigFontName, c -> origFontName, nxagentOrigFontNameLen);
 

--
Alioth's /home/x2go-admin/maintenancescripts/git/hooks/post-receive-email on /srv/git/code.x2go.org/nx-libs.git


More information about the x2go-commits mailing list