aboutsummaryrefslogtreecommitdiff
path: root/nx-X11/lib/src/GetColor.c
diff options
context:
space:
mode:
Diffstat (limited to 'nx-X11/lib/src/GetColor.c')
-rw-r--r--nx-X11/lib/src/GetColor.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/nx-X11/lib/src/GetColor.c b/nx-X11/lib/src/GetColor.c
index cd0eb9f63..f38dea9c5 100644
--- a/nx-X11/lib/src/GetColor.c
+++ b/nx-X11/lib/src/GetColor.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"
@@ -48,6 +49,9 @@ XColor *exact_def) /* RETURN */
XcmsColor cmsColor_exact;
Status ret;
+ if (colorname != NULL && strlen(colorname) >= USHRT_MAX)
+ return (0);
+
#ifdef XCMS
/*
* Let's Attempt to use Xcms and i18n approach to Parse Color
@@ -83,7 +87,7 @@ XColor *exact_def) /* RETURN */
GetReq(AllocNamedColor, req);
req->cmap = cmap;
- nbytes = req->nbytes = strlen(colorname);
+ nbytes = req->nbytes = (CARD16) strlen(colorname);
req->length += (nbytes + 3) >> 2; /* round up to mult of 4 */
_XSend(dpy, colorname, nbytes);