Commit Diff


commit - 7ca1c90109e17dced4b38fbaadea9d2cf39871b7
commit + b2f67698309b0c573cd52e357be126171be0a93a
blob - 04b13a038fa377d0baf0e3565c58b2b1eb08dcf0
blob + 5363fb74f38d75f20501997369da915ff8536910
--- src/cmd/devdraw/x11-init.c
+++ src/cmd/devdraw/x11-init.c
@@ -176,6 +176,7 @@ _xattach(char *label, char *winsize)
 			}
 		}
 	}
+	XFree(pfmt);
 	if(_x.chan == 0){
 		werrstr("could not determine screen pixel format");
 		goto err0;
@@ -232,6 +233,7 @@ _xattach(char *label, char *winsize)
 		geom = smprint("%s.geometry", label);
 		if(geom && XrmGetResource(database, geom, nil, &geomrestype, &geomres))
 			mask = XParseGeometry(geomres.addr, &x, &y, (uint*)&width, (uint*)&height);
+		XrmDestroyDatabase(database);
 		free(geom);
 
 		if((mask & WidthValue) && (mask & HeightValue)){
blob - d84cdc8f94793ea7aa629867b9a2a3281c8b2d14
blob + 729f264735fd40ba4bb13263997d22c9bb4fc181
--- src/cmd/devdraw/x11-itrans.c
+++ src/cmd/devdraw/x11-itrans.c
@@ -431,8 +431,10 @@ _xgetsnarffrom(XWindow w, Atom clipboard, Atom target,
 		usleep(10*1000);
 		XGetWindowProperty(_x.display, _x.drawable, prop, 0, 0, 0, AnyPropertyType,
 			&type, &fmt, &dummy, &len, &xdata);
-		if(lastlen == len && len > 0)
+		if(lastlen == len && len > 0){
+			XFree(xdata);
 			break;
+		}
 		lastlen = len;
 		XFree(xdata);
 	}