diff options
Diffstat (limited to 'nx-X11/lib/src/GetColor.c')
-rw-r--r-- | nx-X11/lib/src/GetColor.c | 6 |
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); |