[freenet-cvs] r17918 - trunk/freenet/src/net/i2p/util

nextgens at freenetproject.org nextgens at freenetproject.org
Fri Feb 15 06:22:08 UTC 2008


Author: nextgens
Date: 2008-02-15 06:22:08 +0000 (Fri, 15 Feb 2008)
New Revision: 17918

Modified:
   trunk/freenet/src/net/i2p/util/NativeBigInteger.java
Log:
NativeBigInteger: fix a potential FD leak

Modified: trunk/freenet/src/net/i2p/util/NativeBigInteger.java
===================================================================
--- trunk/freenet/src/net/i2p/util/NativeBigInteger.java	2008-02-15 06:19:18 UTC (rev 17917)
+++ trunk/freenet/src/net/i2p/util/NativeBigInteger.java	2008-02-15 06:22:08 UTC (rev 17918)
@@ -26,6 +26,7 @@
 import freenet.support.CPUInformation.CPUInfo;
 import freenet.support.CPUInformation.IntelCPUInfo;
 import freenet.support.CPUInformation.UnknownCPUException;
+import freenet.support.io.Closer;
 
 /**
  * <p>BigInteger that takes advantage of the jbigi library for the modPow operation,
@@ -471,24 +472,26 @@
 			throw new FileNotFoundException();
 		}
 
+		FileOutputStream fos = null;
 		try {
 			f.deleteOnExit();
-			FileOutputStream fos = new FileOutputStream(f);
+			fos = new FileOutputStream(f);
 			byte[] buf = new byte[4096 * 1024];
 			int read;
 			while((read = is.read(buf)) > 0) {
 				fos.write(buf, 0, read);
 			}
 			fos.close();
+			fos = null;
 			System.load(f.getAbsolutePath());
 			return true;
 		} catch(IOException e) {
 		} catch(UnsatisfiedLinkError ule) {
-			f.delete();
 			// likely to be "noexec" 
 			if(ule.toString().toLowerCase().indexOf("not permitted") == -1)
 				throw ule;
 		} finally {
+			Closer.close(fos);
 			f.delete();
 		}
 




More information about the cvs mailing list