diff options
author | Charles Lombardo <clombardo169@gmail.com> | 2023-05-01 07:02:41 +0200 |
---|---|---|
committer | bunnei <bunneidev@gmail.com> | 2023-06-03 09:05:57 +0200 |
commit | 3281dc597e84115a032bb3d8d1ff9d5467422993 (patch) | |
tree | f3080148fb1ef7aaeca9ff3e665b713fc839d666 | |
parent | android: Add dedicated show overlay checkbox (diff) | |
download | yuzu-3281dc597e84115a032bb3d8d1ff9d5467422993.tar yuzu-3281dc597e84115a032bb3d8d1ff9d5467422993.tar.gz yuzu-3281dc597e84115a032bb3d8d1ff9d5467422993.tar.bz2 yuzu-3281dc597e84115a032bb3d8d1ff9d5467422993.tar.lz yuzu-3281dc597e84115a032bb3d8d1ff9d5467422993.tar.xz yuzu-3281dc597e84115a032bb3d8d1ff9d5467422993.tar.zst yuzu-3281dc597e84115a032bb3d8d1ff9d5467422993.zip |
-rw-r--r-- | src/android/app/src/main/java/org/yuzu/yuzu_emu/utils/GpuDriverHelper.kt | 12 |
1 files changed, 9 insertions, 3 deletions
diff --git a/src/android/app/src/main/java/org/yuzu/yuzu_emu/utils/GpuDriverHelper.kt b/src/android/app/src/main/java/org/yuzu/yuzu_emu/utils/GpuDriverHelper.kt index 236c7bc23..23986692a 100644 --- a/src/android/app/src/main/java/org/yuzu/yuzu_emu/utils/GpuDriverHelper.kt +++ b/src/android/app/src/main/java/org/yuzu/yuzu_emu/utils/GpuDriverHelper.kt @@ -7,6 +7,7 @@ import android.content.Context import android.net.Uri import org.yuzu.yuzu_emu.NativeLibrary import org.yuzu.yuzu_emu.utils.FileUtil.copyUriToInternalStorage +import java.io.BufferedInputStream import java.io.File import java.io.FileInputStream import java.io.FileOutputStream @@ -28,12 +29,17 @@ object GpuDriverHelper { if (!dir.exists()) dir.mkdirs() // Unpack the files. - val zis = ZipInputStream(FileInputStream(zipFilePath)) + val inputStream = FileInputStream(zipFilePath) + val zis = ZipInputStream(BufferedInputStream(inputStream)) val buffer = ByteArray(1024) var ze = zis.nextEntry while (ze != null) { - val fileName = ze.name - val newFile = File(destDir + fileName) + val newFile = File(destDir, ze.name) + val canonicalPath = newFile.canonicalPath + if (!canonicalPath.startsWith(destDir + ze.name)) { + throw SecurityException("Zip file attempted path traversal! " + ze.name) + } + newFile.parentFile!!.mkdirs() val fos = FileOutputStream(newFile) var len: Int |