summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'net-misc/x11rdp/files/xorg-server-1.9-cve-2013-4396.patch')
-rw-r--r--net-misc/x11rdp/files/xorg-server-1.9-cve-2013-4396.patch43
1 files changed, 43 insertions, 0 deletions
diff --git a/net-misc/x11rdp/files/xorg-server-1.9-cve-2013-4396.patch b/net-misc/x11rdp/files/xorg-server-1.9-cve-2013-4396.patch
new file mode 100644
index 000000000000..fa8b4825f7e4
--- /dev/null
+++ b/net-misc/x11rdp/files/xorg-server-1.9-cve-2013-4396.patch
@@ -0,0 +1,43 @@
+diff -ur a/dix/dixfonts.c b/dix/dixfonts.c
+--- a/dix/dixfonts.c 2011-12-18 05:44:54.000000000 +0100
++++ b/dix/dixfonts.c 2013-10-10 12:06:44.579225694 +0200
+@@ -1479,6 +1479,7 @@
+ 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
+@@ -1491,6 +1492,7 @@
+ err = BadAlloc;
+ goto bail;
+ }
++ old_closure = c;
+ *new_closure = *c;
+ c = new_closure;
+
+@@ -1498,6 +1500,7 @@
+ if (!data)
+ {
+ free(c);
++ c = old_closure;
+ err = BadAlloc;
+ goto bail;
+ }
+@@ -1509,6 +1512,7 @@
+ {
+ free(c->data);
+ free(c);
++ c = old_closure;
+ err = BadAlloc;
+ goto bail;
+ }
+@@ -1522,6 +1526,7 @@
+ FreeScratchGC(pGC);
+ free(c->data);
+ free(c);
++ c = old_closure;
+ err = BadAlloc;
+ goto bail;
+ }