From 3b82c631dbc60c835107f9a6559ae8cbdcca5025 Mon Sep 17 00:00:00 2001 From: M66B Date: Wed, 19 May 2021 17:20:42 +0200 Subject: [PATCH] Check http response code --- app/src/main/java/eu/faircode/email/ContactInfo.java | 4 ++++ app/src/main/java/eu/faircode/email/DisconnectBlacklist.java | 5 +++++ app/src/main/java/eu/faircode/email/EmailProvider.java | 4 ++++ app/src/main/java/eu/faircode/email/FragmentMessages.java | 4 ++++ app/src/main/java/eu/faircode/email/FragmentOAuth.java | 5 +++++ app/src/main/java/eu/faircode/email/IPInfo.java | 5 +++++ 6 files changed, 27 insertions(+) diff --git a/app/src/main/java/eu/faircode/email/ContactInfo.java b/app/src/main/java/eu/faircode/email/ContactInfo.java index e2b0d3bb1e..6d51a8c74a 100644 --- a/app/src/main/java/eu/faircode/email/ContactInfo.java +++ b/app/src/main/java/eu/faircode/email/ContactInfo.java @@ -601,6 +601,10 @@ public class ContactInfo { connection.connect(); try { + int status = connection.getResponseCode(); + if (status != HttpURLConnection.HTTP_OK) + throw new FileNotFoundException("Error " + status + ":" + connection.getResponseMessage()); + Bitmap bitmap = ImageHelper.getScaledBitmap(connection.getInputStream(), url.toString(), scaleToPixels); if (bitmap == null) throw new FileNotFoundException("decodeStream"); diff --git a/app/src/main/java/eu/faircode/email/DisconnectBlacklist.java b/app/src/main/java/eu/faircode/email/DisconnectBlacklist.java index 8bdac2753c..74cd8bcd09 100644 --- a/app/src/main/java/eu/faircode/email/DisconnectBlacklist.java +++ b/app/src/main/java/eu/faircode/email/DisconnectBlacklist.java @@ -30,6 +30,7 @@ import org.json.JSONException; import org.json.JSONObject; import java.io.File; +import java.io.FileNotFoundException; import java.io.IOException; import java.net.URL; import java.util.ArrayList; @@ -120,6 +121,10 @@ public class DisconnectBlacklist { connection.connect(); try { + int status = connection.getResponseCode(); + if (status != HttpsURLConnection.HTTP_OK) + throw new FileNotFoundException("Error " + status + ":" + connection.getResponseMessage()); + String response = Helper.readStream(connection.getInputStream()); Helper.writeText(file, response); } finally { diff --git a/app/src/main/java/eu/faircode/email/EmailProvider.java b/app/src/main/java/eu/faircode/email/EmailProvider.java index f518539755..521b0c50c4 100644 --- a/app/src/main/java/eu/faircode/email/EmailProvider.java +++ b/app/src/main/java/eu/faircode/email/EmailProvider.java @@ -355,6 +355,10 @@ public class EmailProvider { request.setRequestProperty("User-Agent", WebViewEx.getUserAgent(context)); request.connect(); + int status = request.getResponseCode(); + if (status != HttpURLConnection.HTTP_OK) + throw new FileNotFoundException("Error " + status + ":" + request.getResponseMessage()); + // https://developer.android.com/reference/org/xmlpull/v1/XmlPullParser XmlPullParserFactory factory = XmlPullParserFactory.newInstance(); XmlPullParser xml = factory.newPullParser(); diff --git a/app/src/main/java/eu/faircode/email/FragmentMessages.java b/app/src/main/java/eu/faircode/email/FragmentMessages.java index 2cbaf457aa..3f4ad3e025 100644 --- a/app/src/main/java/eu/faircode/email/FragmentMessages.java +++ b/app/src/main/java/eu/faircode/email/FragmentMessages.java @@ -7771,6 +7771,10 @@ public class FragmentMessages extends FragmentBase implements SharedPreferences. connection.connect(); try { + int status = connection.getResponseCode(); + if (status != HttpURLConnection.HTTP_OK) + throw new FileNotFoundException("Error " + status + ":" + connection.getResponseMessage()); + Helper.copy(connection.getInputStream(), os); } finally { connection.disconnect(); diff --git a/app/src/main/java/eu/faircode/email/FragmentOAuth.java b/app/src/main/java/eu/faircode/email/FragmentOAuth.java index 73d6647f59..a587748cc6 100644 --- a/app/src/main/java/eu/faircode/email/FragmentOAuth.java +++ b/app/src/main/java/eu/faircode/email/FragmentOAuth.java @@ -70,6 +70,7 @@ import net.openid.appauth.browser.VersionedBrowserMatcher; import org.json.JSONObject; +import java.io.FileNotFoundException; import java.net.URL; import java.util.ArrayList; import java.util.Date; @@ -483,6 +484,10 @@ public class FragmentOAuth extends FragmentBase { connection.connect(); try { + int status = connection.getResponseCode(); + if (status != HttpsURLConnection.HTTP_OK) + throw new FileNotFoundException("Error " + status + ":" + connection.getResponseMessage()); + String json = Helper.readStream(connection.getInputStream()); Log.i("json=" + json); JSONObject data = new JSONObject(json); diff --git a/app/src/main/java/eu/faircode/email/IPInfo.java b/app/src/main/java/eu/faircode/email/IPInfo.java index a45ebd935f..c1aeb0d6bd 100644 --- a/app/src/main/java/eu/faircode/email/IPInfo.java +++ b/app/src/main/java/eu/faircode/email/IPInfo.java @@ -27,6 +27,7 @@ import android.util.Pair; import androidx.annotation.NonNull; import androidx.core.net.MailTo; +import java.io.FileNotFoundException; import java.io.IOException; import java.net.InetAddress; import java.net.URL; @@ -79,6 +80,10 @@ public class IPInfo { Organization organization = new Organization(); try { + int status = connection.getResponseCode(); + if (status != HttpsURLConnection.HTTP_OK) + throw new FileNotFoundException("Error " + status + ":" + connection.getResponseMessage()); + String response = Helper.readStream(connection.getInputStream()); organization.name = response.trim(); if ("".equals(organization.name) || "undefined".equals(organization.name))