Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/stefan-niedermann/nextcloud-deck.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authordesperateCoder <echotodevnull@gmail.com>2020-05-13 12:23:29 +0300
committerdesperateCoder <echotodevnull@gmail.com>2020-05-13 12:23:41 +0300
commit78124c37b49008b33c17f30426c69f9d692e1cae (patch)
treed9e64f78c5a7b9f692bfa095225d2a6001c89e2b
parent6affa08fd8a90fc012e1560487c34d67b5b430fd (diff)
crash on invalid versions from capability endpoint
-rw-r--r--app/src/main/java/it/niedermann/nextcloud/deck/api/JsonToEntityParser.java7
-rw-r--r--app/src/main/java/it/niedermann/nextcloud/deck/model/ocs/Version.java2
2 files changed, 7 insertions, 2 deletions
diff --git a/app/src/main/java/it/niedermann/nextcloud/deck/api/JsonToEntityParser.java b/app/src/main/java/it/niedermann/nextcloud/deck/api/JsonToEntityParser.java
index c0b29e7ae..e8768b140 100644
--- a/app/src/main/java/it/niedermann/nextcloud/deck/api/JsonToEntityParser.java
+++ b/app/src/main/java/it/niedermann/nextcloud/deck/api/JsonToEntityParser.java
@@ -339,7 +339,9 @@ public class JsonToEntityParser {
JsonObject deck = caps.getAsJsonObject("deck");
if (deck.has("version")) {
version = deck.get("version").getAsString();
-
+ if (version == null || version.trim().length() < 1) {
+ throw new IllegalArgumentException("capabilities endpoint returned an invalid version string: \""+version+"\"");
+ }
}
}
if (caps.has("theming")) {
@@ -348,6 +350,9 @@ public class JsonToEntityParser {
capabilities.setTextColor(theming.get("color-text").getAsString());
}
}
+ if (version == null || version.trim().length() < 1) {
+ throw new IllegalArgumentException("capabilities endpoint returned no version string at all!");
+ }
capabilities.setDeckVersion(Version.of(version));
}
}
diff --git a/app/src/main/java/it/niedermann/nextcloud/deck/model/ocs/Version.java b/app/src/main/java/it/niedermann/nextcloud/deck/model/ocs/Version.java
index 5e7169472..701cdd335 100644
--- a/app/src/main/java/it/niedermann/nextcloud/deck/model/ocs/Version.java
+++ b/app/src/main/java/it/niedermann/nextcloud/deck/model/ocs/Version.java
@@ -80,7 +80,7 @@ public class Version implements Comparable<Version> {
if (matcher.find()) {
return Integer.parseInt(matcher.group());
}
- return 0;
+ throw new IllegalArgumentException("could not extract a number from following string: \""+containsNumbers+"\"");
}
@NonNull