summaryrefslogtreecommitdiff
path: root/src/android
diff options
context:
space:
mode:
Diffstat (limited to 'src/android')
-rw-r--r--src/android/app/src/main/java/org/yuzu/yuzu_emu/utils/GpuDriverHelper.kt12
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
7import android.net.Uri 7import android.net.Uri
8import org.yuzu.yuzu_emu.NativeLibrary 8import org.yuzu.yuzu_emu.NativeLibrary
9import org.yuzu.yuzu_emu.utils.FileUtil.copyUriToInternalStorage 9import org.yuzu.yuzu_emu.utils.FileUtil.copyUriToInternalStorage
10import java.io.BufferedInputStream
10import java.io.File 11import java.io.File
11import java.io.FileInputStream 12import java.io.FileInputStream
12import java.io.FileOutputStream 13import java.io.FileOutputStream
@@ -28,12 +29,17 @@ object GpuDriverHelper {
28 if (!dir.exists()) dir.mkdirs() 29 if (!dir.exists()) dir.mkdirs()
29 30
30 // Unpack the files. 31 // Unpack the files.
31 val zis = ZipInputStream(FileInputStream(zipFilePath)) 32 val inputStream = FileInputStream(zipFilePath)
33 val zis = ZipInputStream(BufferedInputStream(inputStream))
32 val buffer = ByteArray(1024) 34 val buffer = ByteArray(1024)
33 var ze = zis.nextEntry 35 var ze = zis.nextEntry
34 while (ze != null) { 36 while (ze != null) {
35 val fileName = ze.name 37 val newFile = File(destDir, ze.name)
36 val newFile = File(destDir + fileName) 38 val canonicalPath = newFile.canonicalPath
39 if (!canonicalPath.startsWith(destDir + ze.name)) {
40 throw SecurityException("Zip file attempted path traversal! " + ze.name)
41 }
42
37 newFile.parentFile!!.mkdirs() 43 newFile.parentFile!!.mkdirs()
38 val fos = FileOutputStream(newFile) 44 val fos = FileOutputStream(newFile)
39 var len: Int 45 var len: Int