From 883b23b6cd22a3c59296ca04f4d7f088ebb2d0a9 Mon Sep 17 00:00:00 2001 From: Praveen Gupta Date: Thu, 23 May 2024 10:06:58 +0200 Subject: [PATCH] fix: do not create read stream for zip entries that are not being extracted --- packages/amplify-cli-core/src/extractZip.js | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/packages/amplify-cli-core/src/extractZip.js b/packages/amplify-cli-core/src/extractZip.js index 46feb293fc3..23ff7d8fa46 100644 --- a/packages/amplify-cli-core/src/extractZip.js +++ b/packages/amplify-cli-core/src/extractZip.js @@ -9,6 +9,7 @@ const path = require('path'); const { promisify } = require('util'); const stream = require('stream'); const yauzl = require('yauzl'); +const { getAmplifyLogger } = require('@aws-amplify/amplify-cli-logger'); const openZip = promisify(yauzl.open); const pipeline = promisify(stream.pipeline); @@ -113,11 +114,12 @@ class Extractor { await fs.mkdir(destDir, mkdirOptions); if (isDir) return; - const readStream = await promisify(this.zipfile.openReadStream.bind(this.zipfile))(entry); - - if (!symlink) { - await pipeline(readStream, createWriteStream(dest, { mode: procMode })); + if (symlink) { + getAmplifyLogger().logError({ message: 'Found symlinks in the zipped directory. These symlinks will not be extracted' }); + return; } + const readStream = await promisify(this.zipfile.openReadStream.bind(this.zipfile))(entry); + await pipeline(readStream, createWriteStream(dest, { mode: procMode })); } getExtractedMode(entryMode, isDir) {