aboutsummaryrefslogtreecommitdiff
path: root/nx-X11/lib/src/LookupCol.c
diff options
context:
space:
mode:
Diffstat (limited to 'nx-X11/lib/src/LookupCol.c')
-rw-r--r--nx-X11/lib/src/LookupCol.c10
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;