From 044a2357fad8863ea12ec632fb5116e003ae1c6d Mon Sep 17 00:00:00 2001 From: Tom Wallroth Date: Wed, 17 Oct 2018 13:58:53 +0100 Subject: [PATCH] fix race-condition crash when extracting data and extracted files are (re)moved --- adm-zip.js | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/adm-zip.js b/adm-zip.js index e4cb0e5..0602374 100644 --- a/adm-zip.js +++ b/adm-zip.js @@ -440,7 +440,11 @@ module.exports = function (/*String*/input) { throw Utils.Errors.CANT_EXTRACT_FILE; } Utils.writeFileTo(entryName, content, overwrite); - fs.utimesSync(entryName, entry.header.time, entry.header.time) + try { + fs.utimesSync(entryName, entry.header.time, entry.header.time) + } catch (err) { + throw Utils.Errors.CANT_EXTRACT_FILE; + } }) }, @@ -488,7 +492,11 @@ module.exports = function (/*String*/input) { } Utils.writeFileToAsync(sanitize(targetPath, entryName), content, overwrite, function (succ) { - fs.utimesSync(pth.resolve(targetPath, entryName), entry.header.time, entry.header.time); + try { + fs.utimesSync(pth.resolve(targetPath, entryName), entry.header.time, entry.header.time); + } catch (err) { + callback(new Error('Unable to set utimes')); + } if (i <= 0) return; if (!succ) { i = 0;