mirror of
https://github.com/znc/znc.git
synced 2026-05-01 02:52:30 +02:00
Handle read errors in CFile::Copy()
This fixes an endless loop (However, I don't know how it happened). git-svn-id: https://znc.svn.sourceforge.net/svnroot/znc/trunk@1280 726aef4b-f618-498e-8847-2d620e286838
This commit is contained in:
@@ -200,9 +200,19 @@ bool CFile::Copy(const CString& sOldFileName, const CString& sNewFileName, bool
|
||||
}
|
||||
|
||||
char szBuf[8192];
|
||||
unsigned int len = 0;
|
||||
int len = 0;
|
||||
|
||||
while ((len = OldFile.Read(szBuf, 8192))) {
|
||||
if (len < 0) {
|
||||
DEBUG_ONLY(cout << "CFile::Copy() failed: " << strerror(errno);)
|
||||
OldFile.Close();
|
||||
|
||||
// That file is only a partial copy, get rid of it
|
||||
NewFile.Close();
|
||||
NewFile.Delete();
|
||||
|
||||
return false;
|
||||
}
|
||||
NewFile.Write(szBuf, len);
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user