From a9838339d633146e0c74dc20cdcffcb1c67e9b5a Mon Sep 17 00:00:00 2001 From: nikky Date: Thu, 19 Jul 2018 15:06:17 +0200 Subject: [PATCH] add IllegalArgument checks, because parsing UUID can throw --- .../matterlink/bridge/command/AuthBridgeCommand.kt | 9 +++++++-- .../main/kotlin/matterlink/config/IdentitiesConfig.kt | 11 ++++++++++- 2 files changed, 17 insertions(+), 3 deletions(-) diff --git a/core/src/main/kotlin/matterlink/bridge/command/AuthBridgeCommand.kt b/core/src/main/kotlin/matterlink/bridge/command/AuthBridgeCommand.kt index ffeac40..0c3d41b 100644 --- a/core/src/main/kotlin/matterlink/bridge/command/AuthBridgeCommand.kt +++ b/core/src/main/kotlin/matterlink/bridge/command/AuthBridgeCommand.kt @@ -37,8 +37,13 @@ object AuthBridgeCommand : IBridgeCommand() { var targetUserName = target val targetUUid: String = instance.nameToUUID(target)?.toString() ?: run { - targetUserName = instance.uuidToName(UUID.fromString(target)) ?: run { - env.respond("cannot find player by username/uuid $target") + try { + targetUserName = instance.uuidToName(UUID.fromString(target)) ?: run { + env.respond("cannot find player by username/uuid $target") + return true + } + } catch (e: IllegalArgumentException) { + env.respond("invalid username/uuid $target") return true } target diff --git a/core/src/main/kotlin/matterlink/config/IdentitiesConfig.kt b/core/src/main/kotlin/matterlink/config/IdentitiesConfig.kt index 9990483..60c126f 100644 --- a/core/src/main/kotlin/matterlink/config/IdentitiesConfig.kt +++ b/core/src/main/kotlin/matterlink/config/IdentitiesConfig.kt @@ -8,6 +8,7 @@ import com.google.common.cache.Cache import com.google.common.cache.CacheBuilder import matterlink.getList import matterlink.logger +import matterlink.stackTraceString import java.io.File import java.io.FileNotFoundException import java.util.* @@ -121,6 +122,14 @@ object IdentitiesConfig { logger.info("platform: $_platform userids: $userids") platform.equals(_platform, true) && userids.contains(userid) } - }?.key?.let { UUID.fromString(it) } + }?.key?.let { + try { + UUID.fromString(it) + } catch (e: IllegalArgumentException) { + logger.error("cannot parse UUID: $it") + logger.error(e.stackTraceString) + null + } + } } } \ No newline at end of file