Fix some resource leaks
authorH.G. Muller <h.g.muller@hccnet.nl>
Sat, 19 Feb 2011 23:03:19 +0000 (00:03 +0100)
committerArun Persaud <apersaud@lbl.gov>
Sat, 19 Feb 2011 23:43:22 +0000 (15:43 -0800)
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

index 7a8a7ac..f5254ea 100644 (file)
--- 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);
     /* 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);
     XTranslateCoordinates(xDisplay, XtWindow(shellWidget),
                          RootWindowOfScreen(XtScreen(shellWidget)),
                          (bw_width - w) / 2, 0 - h / 2, &xx, &yy, &junk);
-#endif /*!NOTDEF*/
     x = xx;
     y = yy;
     x = xx;
     y = yy;
+#endif /*!NOTDEF*/
     if (y < 0) y = 0; /*avoid positioning top offscreen*/
 
     j = 0;
     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);
     rewind(f);
     selection_tmp = XtMalloc(len + 1);
     count = fread(selection_tmp, 1, len, f);
+    fclose(f);
     if (len != count) {
       XtFree(selection_tmp);
       return False;
     if (len != count) {
       XtFree(selection_tmp);
       return False;