diff options
Diffstat (limited to 'nx-X11/lib/src/LookupCol.c')
-rw-r--r-- | nx-X11/lib/src/LookupCol.c | 10 |
1 files changed, 7 insertions, 3 deletions
diff --git a/nx-X11/lib/src/LookupCol.c b/nx-X11/lib/src/LookupCol.c index f7f969f56..3b53bf878 100644 --- a/nx-X11/lib/src/LookupCol.c +++ b/nx-X11/lib/src/LookupCol.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" @@ -40,12 +41,17 @@ XLookupColor ( XColor *def, XColor *scr) { - register int n; + register size_t n; xLookupColorReply reply; register xLookupColorReq *req; XcmsCCC ccc; XcmsColor cmsColor_exact; + if (spec == NULL) + return 0; + n = strlen (spec); + if (n >= USHRT_MAX) + return 0; #ifdef XCMS /* * Let's Attempt to use Xcms and i18n approach to Parse Color @@ -77,8 +83,6 @@ XLookupColor ( * Xcms and i18n methods failed, so lets pass it to the server * for parsing. */ - - n = strlen (spec); LockDisplay(dpy); GetReq (LookupColor, req); req->cmap = cmap; |