Skip to content

Commit 044a235

Browse files
committed
fix race-condition crash when extracting data and extracted files are (re)moved
1 parent c309c92 commit 044a235

File tree

1 file changed

+10
-2
lines changed

1 file changed

+10
-2
lines changed

Diff for: adm-zip.js

+10-2
Original file line numberDiff line numberDiff line change
@@ -440,7 +440,11 @@ module.exports = function (/*String*/input) {
440440
throw Utils.Errors.CANT_EXTRACT_FILE;
441441
}
442442
Utils.writeFileTo(entryName, content, overwrite);
443-
fs.utimesSync(entryName, entry.header.time, entry.header.time)
443+
try {
444+
fs.utimesSync(entryName, entry.header.time, entry.header.time)
445+
} catch (err) {
446+
throw Utils.Errors.CANT_EXTRACT_FILE;
447+
}
444448
})
445449
},
446450

@@ -488,7 +492,11 @@ module.exports = function (/*String*/input) {
488492
}
489493

490494
Utils.writeFileToAsync(sanitize(targetPath, entryName), content, overwrite, function (succ) {
491-
fs.utimesSync(pth.resolve(targetPath, entryName), entry.header.time, entry.header.time);
495+
try {
496+
fs.utimesSync(pth.resolve(targetPath, entryName), entry.header.time, entry.header.time);
497+
} catch (err) {
498+
callback(new Error('Unable to set utimes'));
499+
}
492500
if (i <= 0) return;
493501
if (!succ) {
494502
i = 0;

0 commit comments

Comments
 (0)