From ac79c5b1f7fb2703f9304d1acd6a6766ca123b72 Mon Sep 17 00:00:00 2001 From: Roopesh Chander Date: Sat, 3 Nov 2018 15:37:31 +0530 Subject: Zip archive: Handle files within folders inside the zip Signed-off-by: Roopesh Chander --- WireGuard/WireGuard/ZipArchive/ZipArchive.swift | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) (limited to 'WireGuard/WireGuard/ZipArchive') diff --git a/WireGuard/WireGuard/ZipArchive/ZipArchive.swift b/WireGuard/WireGuard/ZipArchive/ZipArchive.swift index 7f654ad..d907803 100644 --- a/WireGuard/WireGuard/ZipArchive/ZipArchive.swift +++ b/WireGuard/WireGuard/ZipArchive/ZipArchive.swift @@ -61,10 +61,10 @@ class ZipArchive { throw ZipArchiveError.badArchive } - let fileName = String(cString: fileNameBuffer) - let fileExtension = URL(string: fileName)?.pathExtension ?? "" + if let fileURL = URL(string: String(cString: fileNameBuffer)), + !fileURL.hasDirectoryPath, + requiredFileExtensions.contains(fileURL.pathExtension) { - if (requiredFileExtensions.contains(fileExtension)) { var unzippedData = Data() var bytesRead: Int32 = 0 repeat { @@ -77,7 +77,7 @@ class ZipArchive { unzippedData.append(dataRead) } } while (bytesRead > 0) - results.append((fileName: fileName, contents: unzippedData)) + results.append((fileName: fileURL.lastPathComponent, contents: unzippedData)) } guard (unzCloseCurrentFile(zipFile) == UNZ_OK) else { -- cgit v1.2.3-59-g8ed1b