From 4d4d6305b409a21e22162ca25175aa6d60dc8916 Mon Sep 17 00:00:00 2001 From: H.G. Muller Date: Sun, 20 Feb 2011 00:03:19 +0100 Subject: [PATCH] Fix some resource leaks Some files were opened not closed in XBoard, when loading XIM images (which I doubt anyone ever does) but also when copying the clipboard (which has the potential of being done very often). There was also some code that would not work if conditional code which is permanently disabled would be enabled. --- xboard.c | 5 ++++- 1 files changed, 4 insertions(+), 1 deletions(-) diff --git a/xboard.c b/xboard.c index 7a8a7ac..f5254ea 100644 --- a/xboard.c +++ b/xboard.c @@ -3299,6 +3299,8 @@ void loadXIM(xim, xmask, filename, dest, mask) } } + fclose(fp); + /* create Pixmap of piece */ *dest = XCreatePixmap(xDisplay, DefaultRootWindow(xDisplay), w, h, xim->depth); @@ -4980,9 +4982,9 @@ Widget MiscCreate(name, text, mutable, callback, lines) XTranslateCoordinates(xDisplay, XtWindow(shellWidget), RootWindowOfScreen(XtScreen(shellWidget)), (bw_width - w) / 2, 0 - h / 2, &xx, &yy, &junk); -#endif /*!NOTDEF*/ x = xx; y = yy; +#endif /*!NOTDEF*/ if (y < 0) y = 0; /*avoid positioning top offscreen*/ j = 0; @@ -5945,6 +5947,7 @@ SendGameSelection(Widget w, Atom *selection, Atom *target, rewind(f); selection_tmp = XtMalloc(len + 1); count = fread(selection_tmp, 1, len, f); + fclose(f); if (len != count) { XtFree(selection_tmp); return False; -- 1.7.0.4