6c92f0e
--- libX11-1.1.4/src/xcb_io.c	2008-03-06 15:45:06.000000000 -0500
6c92f0e
+++ hacked/src/xcb_io.c	2008-09-17 00:40:57.000000000 -0400
6c92f0e
@@ -396,15 +396,18 @@
6c92f0e
 				{
6c92f0e
 					case X_LookupColor:
6c92f0e
 					case X_AllocNamedColor:
6c92f0e
+						free(error);
6c92f0e
 						return 0;
6c92f0e
 				}
6c92f0e
 				break;
6c92f0e
 			case BadFont:
6c92f0e
 				if(err->majorCode == X_QueryFont)
6c92f0e
+					free(error);
6c92f0e
 					return 0;
6c92f0e
 				break;
6c92f0e
 			case BadAlloc:
6c92f0e
 			case BadAccess:
6c92f0e
+				free(error);
6c92f0e
 				return 0;
6c92f0e
 		}
6c92f0e
 
6c92f0e
@@ -413,10 +416,13 @@
6c92f0e
 		 * want to suppress the error.
6c92f0e
 		 */
6c92f0e
 		for(ext = dpy->ext_procs; ext; ext = ext->next)
6c92f0e
-			if(ext->error && ext->error(dpy, err, &ext->codes, &ret_code))
6c92f0e
+			if(ext->error && ext->error(dpy, err, &ext->codes, &ret_code)) {
6c92f0e
+				free(error);
6c92f0e
 				return ret_code;
6c92f0e
+			}
6c92f0e
 
6c92f0e
-		_XError(dpy, (xError *) error);
6c92f0e
+		_XError(dpy, err);
6c92f0e
+		free(error);
6c92f0e
 		return 0;
6c92f0e
 	}
6c92f0e