Clone file handle for concurrent zip access.

This commit is contained in:
OTHGMars 2021-01-11 04:49:43 -05:00
parent 64c9667bad
commit e808fc4407
2 changed files with 4 additions and 1 deletions

View file

@ -85,7 +85,7 @@ void ZipCryptRStream::setPassword(const char *password)
bool ZipCryptRStream::attachStream(Stream* io_pSlaveStream) bool ZipCryptRStream::attachStream(Stream* io_pSlaveStream)
{ {
mStream = io_pSlaveStream; mStream = io_pSlaveStream->clone();
mStreamStartPos = mStream->getPosition(); mStreamStartPos = mStream->getPosition();
// [tom, 12/20/2005] Encrypted zip files have an extra 12 bytes // [tom, 12/20/2005] Encrypted zip files have an extra 12 bytes

View file

@ -58,7 +58,10 @@ bool ZipSubRStream::attachStream(Stream* io_pSlaveStream)
AssertFatal(io_pSlaveStream != NULL, "NULL Slave stream?"); AssertFatal(io_pSlaveStream != NULL, "NULL Slave stream?");
AssertFatal(m_pStream == NULL, "Already attached!"); AssertFatal(m_pStream == NULL, "Already attached!");
m_pStream = io_pSlaveStream->clone();
if (!m_pStream)
m_pStream = io_pSlaveStream; m_pStream = io_pSlaveStream;
m_originalSlavePosition = io_pSlaveStream->getPosition(); m_originalSlavePosition = io_pSlaveStream->getPosition();
m_uncompressedSize = 0; m_uncompressedSize = 0;
m_currentPosition = 0; m_currentPosition = 0;