ftp, sftp: Fix heap-after-free bug on exception

This commit is contained in:
Tatsuhiro Tsujikawa 2015-05-28 22:15:25 +09:00
parent 70541498d8
commit bb8df11d7e
2 changed files with 2 additions and 2 deletions

View File

@ -467,12 +467,12 @@ bool FtpNegotiationCommand::onFileSizeDetermined(int64_t totalLength)
poolConnection();
return false;
}
checkIntegrityEntry->pushNextCommand(std::unique_ptr<Command>(this));
// We have to make sure that command that has Request object must
// have segment after PieceStorage is initialized. See
// AbstractCommand::execute()
getSegmentMan()->getSegmentWithIndex(getCuid(), 0);
checkIntegrityEntry->pushNextCommand(std::unique_ptr<Command>(this));
prepareForNextAction(std::move(checkIntegrityEntry));
disableReadCheckSocket();

View File

@ -299,12 +299,12 @@ void SftpNegotiationCommand::onFileSizeDetermined(int64_t totalLength)
poolConnection();
return;
}
checkIntegrityEntry->pushNextCommand(std::unique_ptr<Command>(this));
// We have to make sure that command that has Request object must
// have segment after PieceStorage is initialized. See
// AbstractCommand::execute()
getSegmentMan()->getSegmentWithIndex(getCuid(), 0);
checkIntegrityEntry->pushNextCommand(std::unique_ptr<Command>(this));
prepareForNextAction(std::move(checkIntegrityEntry));
disableReadCheckSocket();