aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorUlrich Sibiller <uli42@gmx.de>2017-11-23 21:25:26 +0100
committerUlrich Sibiller <uli42@gmx.de>2018-01-07 01:27:07 +0100
commit5987a7b1af09e97271be3da74d336a64435e759a (patch)
tree5ee10aefa54ee4c4c1d4e7fd16c21206b2732399
parent3c81899718e3429e45381beaaba58d4886a5537c (diff)
downloadnx-libs-5987a7b1af09e97271be3da74d336a64435e759a.tar.gz
nx-libs-5987a7b1af09e97271be3da74d336a64435e759a.tar.bz2
nx-libs-5987a7b1af09e97271be3da74d336a64435e759a.zip
Dialog.c,Display.c,Font.c,NXdixfonts.c: don't use hardcoded string buffer lengths
-rw-r--r--nx-X11/programs/Xserver/hw/nxagent/Dialog.c17
-rw-r--r--nx-X11/programs/Xserver/hw/nxagent/Display.c6
-rw-r--r--nx-X11/programs/Xserver/hw/nxagent/Font.c7
-rw-r--r--nx-X11/programs/Xserver/hw/nxagent/NXdixfonts.c8
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 b7852a0ac..df6bb1c89 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 4930baee2..5943e538e 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 3b35a8bff..c7fcaf346 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 49d864887..db555d5fc 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);