diff options
author | Ulrich Sibiller <uli42@gmx.de> | 2022-01-19 00:45:43 +0100 |
---|---|---|
committer | Mike Gabriel <mike.gabriel@das-netzwerkteam.de> | 2023-04-27 14:08:46 +0200 |
commit | 4875a15ca61358a1c95b156b2279fce092451278 (patch) | |
tree | 79054df1730d4723658b02cec311bc8ba7655662 /nx-X11/lib/src/SetFPath.c | |
parent | a502149a844736dcc7f7dedd7c63229c74a448ee (diff) | |
download | nx-libs-4875a15ca61358a1c95b156b2279fce092451278.tar.gz nx-libs-4875a15ca61358a1c95b156b2279fce092451278.tar.bz2 nx-libs-4875a15ca61358a1c95b156b2279fce092451278.zip |
Update libNX_X11 to upstream's libX11-1.7.3.1-10-gd60ede78
Diffstat (limited to 'nx-X11/lib/src/SetFPath.c')
-rw-r--r-- | nx-X11/lib/src/SetFPath.c | 12 |
1 files changed, 9 insertions, 3 deletions
diff --git a/nx-X11/lib/src/SetFPath.c b/nx-X11/lib/src/SetFPath.c index 60aaef01e..6ac546f7b 100644 --- a/nx-X11/lib/src/SetFPath.c +++ b/nx-X11/lib/src/SetFPath.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 "Xlibint.h" #define safestrlen(s) ((s) ? strlen(s) : 0) @@ -37,7 +38,7 @@ XSetFontPath ( char **directories, int ndirs) { - register int n = 0; + register size_t n = 0; register int i; register int nbytes; char *p; @@ -48,7 +49,12 @@ XSetFontPath ( GetReq (SetFontPath, req); req->nFonts = ndirs; for (i = 0; i < ndirs; i++) { - n += safestrlen (directories[i]) + 1; + n = n + (safestrlen (directories[i]) + 1); + if (n >= USHRT_MAX) { + UnlockDisplay(dpy); + SyncHandle(); + return 0; + } } nbytes = (n + 3) & ~3; req->length += nbytes >> 2; @@ -59,7 +65,7 @@ XSetFontPath ( char *tmp = p; for (i = 0; i < ndirs; i++) { - register int length = safestrlen (directories[i]); + size_t length = safestrlen (directories[i]); *p = length; memcpy (p + 1, directories[i], length); p += length + 1; |