From bf86afc86796a17e214cae14af7434ee32349b29 Mon Sep 17 00:00:00 2001 From: Teng Zhang Date: Wed, 27 Sep 2023 16:06:37 +0800 Subject: [PATCH] KT-57870: Suppress InvalidPathException for paths with invalid characters when loading Konan library ^KT-57870 Fixed --- .../Runtime/src/jvm/kotlin/kotlinx/cinterop/JvmUtils.kt | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/kotlin-native/Interop/Runtime/src/jvm/kotlin/kotlinx/cinterop/JvmUtils.kt b/kotlin-native/Interop/Runtime/src/jvm/kotlin/kotlinx/cinterop/JvmUtils.kt index f1466c63308..50df6a5e7f0 100644 --- a/kotlin-native/Interop/Runtime/src/jvm/kotlin/kotlinx/cinterop/JvmUtils.kt +++ b/kotlin-native/Interop/Runtime/src/jvm/kotlin/kotlinx/cinterop/JvmUtils.kt @@ -20,6 +20,7 @@ import org.jetbrains.kotlin.konan.util.KonanHomeProvider import java.io.File import java.nio.file.Files import java.nio.file.Paths +import java.nio.file.InvalidPathException import java.security.MessageDigest private fun decodeFromUtf8(bytes: ByteArray) = String(bytes) @@ -114,7 +115,11 @@ private val systemTmpDir = System.getProperty("java.io.tmpdir") // TODO: File(..).deleteOnExit() does not work on Windows. May be use FILE_FLAG_DELETE_ON_CLOSE? private fun tryLoadKonanLibrary(dir: String, fullLibraryName: String, runFromDaemon: Boolean): Boolean { - val fullLibraryPath = Paths.get(dir, fullLibraryName) + val fullLibraryPath = try { + Paths.get(dir, fullLibraryName) + } catch (ignored: InvalidPathException) { + return false + } if (!Files.exists(fullLibraryPath)) return false fun createTempDirWithLibrary() = if (runFromDaemon) {