From 4875a15ca61358a1c95b156b2279fce092451278 Mon Sep 17 00:00:00 2001 From: Ulrich Sibiller Date: Wed, 19 Jan 2022 00:45:43 +0100 Subject: Update libNX_X11 to upstream's libX11-1.7.3.1-10-gd60ede78 --- nx-X11/lib/src/FontInfo.c | 18 +++++++++++------- 1 file changed, 11 insertions(+), 7 deletions(-) (limited to 'nx-X11/lib/src/FontInfo.c') diff --git a/nx-X11/lib/src/FontInfo.c b/nx-X11/lib/src/FontInfo.c index a2d12c2ec..0e4ae097b 100644 --- a/nx-X11/lib/src/FontInfo.c +++ b/nx-X11/lib/src/FontInfo.c @@ -28,6 +28,7 @@ in this Software without prior written authorization from The Open Group. #include #endif #include "Xlibint.h" +#include "reallocarray.h" #include #if defined(XF86BIGFONT) @@ -57,10 +58,13 @@ XFontStruct **info) /* RETURN */ register xListFontsReq *req; int j; + if (pattern != NULL && strlen(pattern) >= USHRT_MAX) + return NULL; + LockDisplay(dpy); GetReq(ListFontsWithInfo, req); req->maxNames = maxNames; - nbytes = req->nbytes = pattern ? strlen (pattern) : 0; + nbytes = req->nbytes = pattern ? (CARD16) strlen (pattern) : 0; req->length += (nbytes + 3) >> 2; _XSend (dpy, pattern, nbytes); /* use _XSend instead of Data, since subsequent _XReply will flush buffer */ @@ -91,22 +95,22 @@ XFontStruct **info) /* RETURN */ XFontStruct * tmp_finfo; char ** tmp_flist; - tmp_finfo = Xrealloc (finfo, sizeof(XFontStruct) * size); + tmp_finfo = Xreallocarray (finfo, size, sizeof(XFontStruct)); if (tmp_finfo) finfo = tmp_finfo; else goto badmem; - tmp_flist = Xrealloc (flist, sizeof(char *) * (size+1)); + tmp_flist = Xreallocarray (flist, size + 1, sizeof(char *)); if (tmp_flist) flist = tmp_flist; else goto badmem; } else { - if (! (finfo = Xmalloc(sizeof(XFontStruct) * size))) + if (! (finfo = Xmallocarray(size, sizeof(XFontStruct)))) goto clearwire; - if (! (flist = Xmalloc(sizeof(char *) * (size+1)))) { + if (! (flist = Xmallocarray(size + 1, sizeof(char *)))) { Xfree(finfo); goto clearwire; } @@ -137,8 +141,8 @@ XFontStruct **info) /* RETURN */ /* nFontProps is a CARD16 */ nbytes = reply.nFontProps * SIZEOF(xFontProp); if ((nbytes >> 2) <= reply_left) { - size_t pbytes = reply.nFontProps * sizeof(XFontProp); - fs->properties = Xmalloc (pbytes); + fs->properties = Xmallocarray (reply.nFontProps, + sizeof(XFontProp)); } if (! fs->properties) goto badmem; -- cgit v1.2.3