From f798a0402b18373b3cc4cdb50916cc8a0787be58 Mon Sep 17 00:00:00 2001 From: Andrzej Hunt Date: Mon, 17 Apr 2017 16:33:57 -0700 Subject: [PATCH] Bug 1356693 - infer: fix RESOURCE_LEAK's in stumbler r=walkingice MozReview-Commit-ID: 8bMGr6v9DKn --HG-- extra : rebase_source : 0a53d3f694df3a631cc7b5ee2345e2ca1a6b6ec1 --- .../mozstumbler/service/utils/Zipper.java | 18 ++++++++++++++---- 1 file changed, 14 insertions(+), 4 deletions(-) diff --git a/mobile/android/stumbler/java/org/mozilla/mozstumbler/service/utils/Zipper.java b/mobile/android/stumbler/java/org/mozilla/mozstumbler/service/utils/Zipper.java index e448924adcfa..c769e1b8c854 100644 --- a/mobile/android/stumbler/java/org/mozilla/mozstumbler/service/utils/Zipper.java +++ b/mobile/android/stumbler/java/org/mozilla/mozstumbler/service/utils/Zipper.java @@ -30,17 +30,27 @@ public class Zipper { public static String unzipData(byte[] data) throws IOException { StringBuilder result = new StringBuilder(); + final ByteArrayInputStream bs = new ByteArrayInputStream(data); - GZIPInputStream gstream = new GZIPInputStream(bs); + BufferedReader in = null; try { - InputStreamReader reader = new InputStreamReader(gstream, StringUtils.UTF_8); - BufferedReader in = new BufferedReader(reader); + in = new BufferedReader(new InputStreamReader(new GZIPInputStream(bs), StringUtils.UTF_8)); String read; while ((read = in.readLine()) != null) { result.append(read); } } finally { - gstream.close(); + // We usually use IOUtils.safeStreamClose(), however stumbler is completely independent + // of the rest of fennec, and hence we can't use it here: + if (in != null) { + try { + in.close(); + } catch (IOException e) { + // eat it - nothing we can do + } + } + + // Is always non-null bs.close(); } return result.toString();