diff --git a/runelite-client/src/main/java/net/runelite/client/rs/ClientConfigLoader.java b/runelite-client/src/main/java/net/runelite/client/rs/ClientConfigLoader.java index 29459d9e7f..ed105ec830 100644 --- a/runelite-client/src/main/java/net/runelite/client/rs/ClientConfigLoader.java +++ b/runelite-client/src/main/java/net/runelite/client/rs/ClientConfigLoader.java @@ -55,11 +55,15 @@ class ClientConfigLoader final RSConfig config = new RSConfig(); - try (final Response response = RuneLiteAPI.CLIENT.newCall(request).execute(); - final BufferedReader in = new BufferedReader(new InputStreamReader(response.body().byteStream()))) + try (final Response response = RuneLiteAPI.CLIENT.newCall(request).execute()) { - String str; + if (!response.isSuccessful()) + { + throw new IOException("Unsuccessful response: " + response.message()); + } + String str; + final BufferedReader in = new BufferedReader(new InputStreamReader(response.body().byteStream())); while ((str = in.readLine()) != null) { int idx = str.indexOf('='); diff --git a/runelite-client/src/main/java/net/runelite/client/rs/ClientLoader.java b/runelite-client/src/main/java/net/runelite/client/rs/ClientLoader.java index f6c77916c4..dbd2c0c95e 100644 --- a/runelite-client/src/main/java/net/runelite/client/rs/ClientLoader.java +++ b/runelite-client/src/main/java/net/runelite/client/rs/ClientLoader.java @@ -26,6 +26,7 @@ */ package net.runelite.client.rs; +import com.google.common.base.Strings; import com.google.common.hash.Hashing; import com.google.common.io.ByteStreams; import com.google.common.reflect.TypeToken; @@ -110,6 +111,12 @@ public class ClientLoader implements Supplier try { config = ClientConfigLoader.fetch(host); + + if (Strings.isNullOrEmpty(config.getCodeBase()) || Strings.isNullOrEmpty(config.getInitialJar()) || Strings.isNullOrEmpty(config.getInitialClass())) + { + throw new IOException("Invalid or missing jav_config"); + } + break; } catch (IOException e)