diff --git a/lib/protocol/SFTP.js b/lib/protocol/SFTP.js index 9f33c021..bd739fa3 100644 --- a/lib/protocol/SFTP.js +++ b/lib/protocol/SFTP.js @@ -2721,17 +2721,18 @@ function doFatalSFTPError(sftp, msg, noDebug) { } function cleanupRequests(sftp) { - const keys = Object.keys(sftp._requests); - if (keys.length === 0) - return; - - const reqs = sftp._requests; - sftp._requests = {}; const err = new Error('No response from server'); - for (let i = 0; i < keys.length; ++i) { - const req = reqs[keys[i]]; - if (typeof req.cb === 'function') - req.cb(err); + while (true) { + const keys = Object.keys(sftp._requests); + if (keys.length === 0) + return; + const reqs = sftp._requests; + sftp._requests = {}; + for (let i = 0; i < keys.length; ++i) { + const req = reqs[keys[i]]; + if (typeof req.cb === 'function') + req.cb(err); + } } }