aboutsummaryrefslogtreecommitdiff
path: root/nx-X11/lib/src/StNColor.c
diff options
context:
space:
mode:
Diffstat (limited to 'nx-X11/lib/src/StNColor.c')
-rw-r--r--nx-X11/lib/src/StNColor.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/nx-X11/lib/src/StNColor.c b/nx-X11/lib/src/StNColor.c
index 8b821c3ef..743fd4edc 100644
--- a/nx-X11/lib/src/StNColor.c
+++ b/nx-X11/lib/src/StNColor.c
@@ -27,6 +27,7 @@ in this Software without prior written authorization from The Open Group.
#ifdef HAVE_CONFIG_H
#include <config.h>
#endif
+#include <limits.h>
#include <stdio.h>
#include "Xlibint.h"
#include "Xcmsint.h"
@@ -46,6 +47,8 @@ int flags) /* DoRed, DoGreen, DoBlue */
XcmsColor cmsColor_exact;
XColor scr_def;
+ if (name != NULL && strlen(name) >= USHRT_MAX)
+ return 0;
#ifdef XCMS
/*
* Let's Attempt to use Xcms approach to Parse Color
@@ -76,7 +79,7 @@ int flags) /* DoRed, DoGreen, DoBlue */
req->cmap = cmap;
req->flags = flags;
req->pixel = pixel;
- req->nbytes = nbytes = strlen(name);
+ req->nbytes = (CARD16) (nbytes = (unsigned) strlen(name));
req->length += (nbytes + 3) >> 2; /* round up to multiple of 4 */
Data(dpy, name, (long)nbytes);
UnlockDisplay(dpy);