aboutsummaryrefslogtreecommitdiff
path: root/nx-X11/lib/src/SetFPath.c
diff options
context:
space:
mode:
authorMike Gabriel <mike.gabriel@das-netzwerkteam.de>2023-04-27 14:10:57 +0200
committerMike Gabriel <mike.gabriel@das-netzwerkteam.de>2023-04-27 14:10:57 +0200
commit91d9218c0cc659f40918af6ac6c035c6c48d2c6d (patch)
tree79054df1730d4723658b02cec311bc8ba7655662 /nx-X11/lib/src/SetFPath.c
parenta502149a844736dcc7f7dedd7c63229c74a448ee (diff)
parent4875a15ca61358a1c95b156b2279fce092451278 (diff)
downloadnx-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/SetFPath.c')
-rw-r--r--nx-X11/lib/src/SetFPath.c12
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;