Index: trunk/server/common/patches/gzip-cve-2009-2624.patch
===================================================================
--- trunk/server/common/patches/gzip-cve-2009-2624.patch	(revision 1433)
+++ trunk/server/common/patches/gzip-cve-2009-2624.patch	(revision 1433)
@@ -0,0 +1,20 @@
+--- inflate.c.orig	2010-01-21 05:31:35.000000000 -0500
++++ inflate.c	2010-01-21 05:31:43.000000000 -0500
+@@ -335,13 +335,15 @@
+   } while (--i);
+   if (c[0] == n)                /* null input--all zero length codes */
+   {
+-    q = (struct huft *) malloc (2 * sizeof *q);
++    q = (struct huft *) malloc (3 * sizeof *q);
+     if (!q)
+       return 3;
+-    hufts += 2;
++    hufts += 3;
+     q[0].v.t = (struct huft *) NULL;
+     q[1].e = 99;    /* invalid code marker */
+     q[1].b = 1;
++    q[2].e = 99;    /* invalid code marker */
++    q[2].b = 1;
+     *t = q + 1;
+     *m = 1;
+     return 0;
Index: trunk/server/common/patches/gzip-cve-2010-0001.patch
===================================================================
--- trunk/server/common/patches/gzip-cve-2010-0001.patch	(revision 1433)
+++ trunk/server/common/patches/gzip-cve-2010-0001.patch	(revision 1433)
@@ -0,0 +1,12 @@
+--- unlzw.c.orig	2010-01-21 05:23:53.000000000 -0500
++++ unlzw.c	2010-01-21 05:25:51.000000000 -0500
+@@ -248,7 +248,8 @@
+ 	int  o;
+ 
+     resetbuf:
+-	e = insize-(o = (posbits>>3));
++	o = posbits >> 3;
++	e = o <= insize ? insize - o : 0;
+ 
+ 	for (i = 0 ; i < e ; ++i) {
+ 	    inbuf[i] = inbuf[i+o];
