aboutsummaryrefslogtreecommitdiff
path: root/nx-X11/lib/src/ListExt.c
diff options
context:
space:
mode:
authorUlrich Sibiller <uli42@gmx.de>2018-08-22 22:30:34 +0200
committerUlrich Sibiller <uli42@gmx.de>2018-10-22 23:23:06 +0200
commite1938c189223164f3a75cf848e90ecc1d2e55d15 (patch)
tree01098708cb7f48349664b1d712c6a77af6bd008c /nx-X11/lib/src/ListExt.c
parent3dc4595560b34242fe4705af8c93d0024eeb2c56 (diff)
downloadnx-libs-e1938c189223164f3a75cf848e90ecc1d2e55d15.tar.gz
nx-libs-e1938c189223164f3a75cf848e90ecc1d2e55d15.tar.bz2
nx-libs-e1938c189223164f3a75cf848e90ecc1d2e55d15.zip
libNX_X11: upgrade to X.org upstream version 1.6.6
We are at X.Org libX11 upstream commit 733f64b Fixes: ArcticaProject/nx-libs #716, #719 and #720
Diffstat (limited to 'nx-X11/lib/src/ListExt.c')
-rw-r--r--nx-X11/lib/src/ListExt.c19
1 files changed, 10 insertions, 9 deletions
diff --git a/nx-X11/lib/src/ListExt.c b/nx-X11/lib/src/ListExt.c
index 7fdf9932c..a795041d0 100644
--- a/nx-X11/lib/src/ListExt.c
+++ b/nx-X11/lib/src/ListExt.c
@@ -74,19 +74,20 @@ char **XListExtensions(
/*
* unpack into null terminated strings.
*/
- chend = ch + (rlen + 1);
- length = *ch;
+ chend = ch + rlen;
+ length = *(unsigned char *)ch;
for (i = 0; i < rep.nExtensions; i++) {
if (ch + length < chend) {
list[i] = ch+1; /* skip over length */
ch += length + 1; /* find next length ... */
- if (ch <= chend) {
- length = *ch;
- *ch = '\0'; /* and replace with null-termination */
- count++;
- } else {
- list[i] = NULL;
- }
+ length = *(unsigned char *)ch;
+ *ch = '\0'; /* and replace with null-termination */
+ count++;
+ } else if (i == 0) {
+ Xfree(list);
+ Xfree(ch);
+ list = NULL;
+ break;
} else
list[i] = NULL;
}