From e1856e482933b24e66f0f432ac0cb0157787e9ce Mon Sep 17 00:00:00 2001 From: harvey_tsai Date: Thu, 11 Jun 2015 11:51:36 +0800 Subject: [PATCH] Fix filedescriptor leakage in MediaMetadataRetriever setDataSource(String) throws an IllegalArgumentException when an IOException or FileNotFoundException occurs, but doesn't close FileDescriptor accordingly. Change-Id: Ib6e0f1418afeeb19e03abd4bedb4cc845a58b6b4 --- media/java/android/media/MediaMetadataRetriever.java | 10 +--------- 1 file changed, 1 insertion(+), 9 deletions(-) diff --git a/media/java/android/media/MediaMetadataRetriever.java b/media/java/android/media/MediaMetadataRetriever.java index 9a69c067e4982..9a73dfcd275b1 100644 --- a/media/java/android/media/MediaMetadataRetriever.java +++ b/media/java/android/media/MediaMetadataRetriever.java @@ -64,9 +64,7 @@ public class MediaMetadataRetriever throw new IllegalArgumentException(); } - FileInputStream is = null; - try { - is = new FileInputStream(path); + try (FileInputStream is = new FileInputStream(path)) { FileDescriptor fd = is.getFD(); setDataSource(fd, 0, 0x7ffffffffffffffL); } catch (FileNotFoundException fileEx) { @@ -74,12 +72,6 @@ public class MediaMetadataRetriever } catch (IOException ioEx) { throw new IllegalArgumentException(); } - - try { - if (is != null) { - is.close(); - } - } catch (Exception e) {} } /**