From 544c83a64c89d0f9d8b0645ad0ca62e566f02ccf Mon Sep 17 00:00:00 2001
From: Torsten Grote <t@grobox.de>
Date: Fri, 28 Jul 2017 10:38:01 -0300
Subject: [PATCH] Close InputStream from RSS feed and prevent NPE

---
 .../org/briarproject/briar/feed/FeedManagerImpl.java     | 9 +++++++--
 1 file changed, 7 insertions(+), 2 deletions(-)

diff --git a/briar-core/src/main/java/org/briarproject/briar/feed/FeedManagerImpl.java b/briar-core/src/main/java/org/briarproject/briar/feed/FeedManagerImpl.java
index ab0b5d0475..2b29393703 100644
--- a/briar-core/src/main/java/org/briarproject/briar/feed/FeedManagerImpl.java
+++ b/briar-core/src/main/java/org/briarproject/briar/feed/FeedManagerImpl.java
@@ -59,6 +59,7 @@ import okhttp3.Dns;
 import okhttp3.OkHttpClient;
 import okhttp3.Request;
 import okhttp3.Response;
+import okhttp3.ResponseBody;
 
 import static java.util.concurrent.TimeUnit.MILLISECONDS;
 import static java.util.logging.Level.WARNING;
@@ -334,7 +335,9 @@ class FeedManagerImpl implements FeedManager, Client, EventListener,
 	private SyndFeed fetchSyndFeed(String url)
 			throws FeedException, IOException {
 		// fetch feed
-		SyndFeed f = getSyndFeed(getFeedInputStream(url));
+		InputStream stream = getFeedInputStream(url);
+		SyndFeed f = getSyndFeed(stream);
+		stream.close();
 
 		if (f.getEntries().size() == 0)
 			throw new FeedException("Feed has no entries");
@@ -387,7 +390,9 @@ class FeedManagerImpl implements FeedManager, Client, EventListener,
 
 		// Execute Request
 		Response response = client.newCall(request).execute();
-		return response.body().byteStream();
+		ResponseBody body = response.body();
+		if (body != null) return body.byteStream();
+		throw new IOException("Empty response body");
 	}
 
 	private SyndFeed getSyndFeed(InputStream stream)
-- 
GitLab