Skip to content

Commit 6b61599

Browse files
authored
fix(xapk): use stream copy to prevent OOM on large files (#2619) (PR #2719)
1 parent 2829e28 commit 6b61599

File tree

1 file changed

+5
-1
lines changed
  • jadx-plugins/jadx-xapk-input/src/main/java/jadx/plugins/input/xapk

1 file changed

+5
-1
lines changed

jadx-plugins/jadx-xapk-input/src/main/java/jadx/plugins/input/xapk/XApkLoader.java

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,10 +2,12 @@
22

33
import java.io.File;
44
import java.io.IOException;
5+
import java.io.InputStream;
56
import java.nio.charset.StandardCharsets;
67
import java.nio.file.Files;
78
import java.nio.file.LinkOption;
89
import java.nio.file.Path;
10+
import java.nio.file.StandardCopyOption;
911
import java.util.ArrayList;
1012
import java.util.HashMap;
1113
import java.util.List;
@@ -85,7 +87,9 @@ private XApkData unpackXApk(File xapkFile, XApkManifest xApkManifest, ZipContent
8587
for (IZipEntry entry : content.getEntries()) {
8688
String fileName = entry.getName();
8789
Path file = tmpDir.resolve(fileName);
88-
Files.write(file, entry.getBytes());
90+
try (InputStream inputStream = entry.getInputStream()) {
91+
Files.copy(inputStream, file, StandardCopyOption.REPLACE_EXISTING);
92+
}
8993
if (declaredApks.contains(fileName)) {
9094
apks.add(file);
9195
} else {

0 commit comments

Comments
 (0)