From f56fd4e215dd7e957ebc49d5f76a1f290e968461 Mon Sep 17 00:00:00 2001 From: topjohnwu Date: Wed, 19 Mar 2025 17:57:31 -0700 Subject: [PATCH] Always close outputStream in processFile Fix #8735 --- .../java/com/topjohnwu/magisk/core/tasks/MagiskInstaller.kt | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/app/core/src/main/java/com/topjohnwu/magisk/core/tasks/MagiskInstaller.kt b/app/core/src/main/java/com/topjohnwu/magisk/core/tasks/MagiskInstaller.kt index 951b84148..3744979c2 100644 --- a/app/core/src/main/java/com/topjohnwu/magisk/core/tasks/MagiskInstaller.kt +++ b/app/core/src/main/java/com/topjohnwu/magisk/core/tasks/MagiskInstaller.kt @@ -17,7 +17,6 @@ import com.topjohnwu.magisk.core.Info import com.topjohnwu.magisk.core.di.ServiceLocator import com.topjohnwu.magisk.core.isRunningAsStub import com.topjohnwu.magisk.core.ktx.copyAll -import com.topjohnwu.magisk.core.ktx.copyAndClose import com.topjohnwu.magisk.core.ktx.writeTo import com.topjohnwu.magisk.core.utils.DummyList import com.topjohnwu.magisk.core.utils.MediaStoreUtils @@ -500,7 +499,7 @@ abstract class MagiskInstallImpl protected constructor( bootItem.file = newBoot bootItem.copyTo(outStream as TarArchiveOutputStream) } else { - newBoot.newInputStream().copyAndClose(outStream) + newBoot.newInputStream().use { it.copyAll(outStream) } } newBoot.delete() @@ -514,6 +513,8 @@ abstract class MagiskInstallImpl protected constructor( outFile.delete() Timber.e(e) return false + } finally { + outStream.close() } // Fix up binaries