diff options
author | Mike Gabriel <mike.gabriel@das-netzwerkteam.de> | 2023-04-27 14:10:57 +0200 |
---|---|---|
committer | Mike Gabriel <mike.gabriel@das-netzwerkteam.de> | 2023-04-27 14:10:57 +0200 |
commit | 91d9218c0cc659f40918af6ac6c035c6c48d2c6d (patch) | |
tree | 79054df1730d4723658b02cec311bc8ba7655662 /nx-X11/lib/src/ParseCol.c | |
parent | a502149a844736dcc7f7dedd7c63229c74a448ee (diff) | |
parent | 4875a15ca61358a1c95b156b2279fce092451278 (diff) | |
download | nx-libs-91d9218c0cc659f40918af6ac6c035c6c48d2c6d.tar.gz nx-libs-91d9218c0cc659f40918af6ac6c035c6c48d2c6d.tar.bz2 nx-libs-91d9218c0cc659f40918af6ac6c035c6c48d2c6d.zip |
Merge branch 'uli42-pr/update_libX11_2022' into 3.6.x
Attributes GH PR #1037: https://github.com/ArcticaProject/nx-libs/pull/1037
Diffstat (limited to 'nx-X11/lib/src/ParseCol.c')
-rw-r--r-- | nx-X11/lib/src/ParseCol.c | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/nx-X11/lib/src/ParseCol.c b/nx-X11/lib/src/ParseCol.c index e997b1b8c..fcf906929 100644 --- a/nx-X11/lib/src/ParseCol.c +++ b/nx-X11/lib/src/ParseCol.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" @@ -39,7 +40,7 @@ XParseColor ( _Xconst char *spec, XColor *def) { - register int n, i; + register size_t n, i; int r, g, b; char c; XcmsCCC ccc; @@ -47,6 +48,8 @@ XParseColor ( if (!spec) return(0); n = strlen (spec); + if (n >= USHRT_MAX) + return(0); if (*spec == '#') { /* * RGB @@ -61,7 +64,7 @@ XParseColor ( r = g; g = b; b = 0; - for (i = n; --i >= 0; ) { + for (i = 0; i < n; i++) { c = *spec++; b <<= 4; if (c >= '0' && c <= '9') @@ -119,7 +122,7 @@ XParseColor ( LockDisplay(dpy); GetReq (LookupColor, req); req->cmap = cmap; - req->nbytes = n = strlen(spec); + req->nbytes = (CARD16) (n = strlen(spec)); req->length += (n + 3) >> 2; Data (dpy, spec, (long)n); if (!_XReply (dpy, (xReply *) &reply, 0, xTrue)) { |