aboutsummaryrefslogtreecommitdiff
path: root/xorg-server/dix/dixfonts.c
diff options
context:
space:
mode:
authormarha <marha@users.sourceforge.net>2013-10-21 07:48:16 +0200
committermarha <marha@users.sourceforge.net>2013-10-21 07:48:16 +0200
commitc665b6e88274f8bc603b0f14f92bf09d2023bd4d (patch)
treee6b3c81a76d0cc2df868263aeae0ab045eaf45b4 /xorg-server/dix/dixfonts.c
parent91e353434f0a6859f404be05581f44d009ca5d6c (diff)
parent6d895f30ab93d71afddc612d8b007f2de7f04165 (diff)
downloadvcxsrv-c665b6e88274f8bc603b0f14f92bf09d2023bd4d.tar.gz
vcxsrv-c665b6e88274f8bc603b0f14f92bf09d2023bd4d.tar.bz2
vcxsrv-c665b6e88274f8bc603b0f14f92bf09d2023bd4d.zip
Merge remote-tracking branch 'origin/released'
* origin/released: fontconfig mesa xserver xkeyboard-config git update 21 okt 2013
Diffstat (limited to 'xorg-server/dix/dixfonts.c')
-rw-r--r--xorg-server/dix/dixfonts.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/xorg-server/dix/dixfonts.c b/xorg-server/dix/dixfonts.c
index 22c236553..dd7700860 100644
--- a/xorg-server/dix/dixfonts.c
+++ b/xorg-server/dix/dixfonts.c
@@ -1459,6 +1459,7 @@ doImageText(ClientPtr client, ITclosurePtr c)
GC *pGC;
unsigned char *data;
ITclosurePtr new_closure;
+ ITclosurePtr old_closure;
/* We're putting the client to sleep. We need to
save some state. Similar problem to that handled
@@ -1470,12 +1471,14 @@ doImageText(ClientPtr client, ITclosurePtr c)
err = BadAlloc;
goto bail;
}
+ old_closure = c;
*new_closure = *c;
c = new_closure;
data = malloc(c->nChars * itemSize);
if (!data) {
free(c);
+ c = old_closure;
err = BadAlloc;
goto bail;
}
@@ -1486,6 +1489,7 @@ doImageText(ClientPtr client, ITclosurePtr c)
if (!pGC) {
free(c->data);
free(c);
+ c = old_closure;
err = BadAlloc;
goto bail;
}
@@ -1498,6 +1502,7 @@ doImageText(ClientPtr client, ITclosurePtr c)
FreeScratchGC(pGC);
free(c->data);
free(c);
+ c = old_closure;
err = BadAlloc;
goto bail;
}