aboutsummaryrefslogtreecommitdiff
path: root/nx-X11/lib/modules/im/ximcp/imLcPrs.c
diff options
context:
space:
mode:
authorUlrich Sibiller <uli42@gmx.de>2022-01-19 00:45:43 +0100
committerMike Gabriel <mike.gabriel@das-netzwerkteam.de>2023-04-27 14:08:46 +0200
commit4875a15ca61358a1c95b156b2279fce092451278 (patch)
tree79054df1730d4723658b02cec311bc8ba7655662 /nx-X11/lib/modules/im/ximcp/imLcPrs.c
parenta502149a844736dcc7f7dedd7c63229c74a448ee (diff)
downloadnx-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/modules/im/ximcp/imLcPrs.c')
-rw-r--r--nx-X11/lib/modules/im/ximcp/imLcPrs.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/nx-X11/lib/modules/im/ximcp/imLcPrs.c b/nx-X11/lib/modules/im/ximcp/imLcPrs.c
index fa992e5d3..d374d6ca8 100644
--- a/nx-X11/lib/modules/im/ximcp/imLcPrs.c
+++ b/nx-X11/lib/modules/im/ximcp/imLcPrs.c
@@ -501,7 +501,7 @@ parseline(
if ((filename = TransFileName(im, tokenbuf)) == NULL)
goto error;
infp = _XFopenFile(filename, "r");
- Xfree(filename);
+ Xfree(filename);
if (infp == NULL)
goto error;
parsestringfile(infp, im, depth);
@@ -676,8 +676,10 @@ parseline(
goto error;
b->tree = new;
b->treesize = newsize;
+ /* Re-derive top after realloc() to avoid undefined behaviour
+ (and crashes on architectures that track pointer bounds). */
if (top >= (DTIndex *) old && top < (DTIndex *) &old[oldsize])
- top = (DTIndex *) (((char *) top) + (((char *)b->tree)-(char *)old));
+ top = (DTIndex *) (((char *)new) + (((char *)top)-(char *)old));
}
p = &b->tree[b->treeused];
p->keysym = buf[i].keysym;