From cf69d312eae85051bc4ccecf188df91058da9bc2 Mon Sep 17 00:00:00 2001 From: Martin Date: Sat, 3 Jan 2015 16:45:05 +0100 Subject: [PATCH] Properly handle transfer hash if partition ends on VHD block boundary and last block is available (cherry picked from commit 4dfff297dee4dd307f33e20994d5418d13ea2bc8) Conflicts: urbackupserver/server_image.cpp (cherry picked from commit ad659afb1e847a339799ab0937900bfeb3341363) --- urbackupserver/server_image.cpp | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/urbackupserver/server_image.cpp b/urbackupserver/server_image.cpp index 38c914c2..2e376971 100644 --- a/urbackupserver/server_image.cpp +++ b/urbackupserver/server_image.cpp @@ -390,7 +390,7 @@ bool BackupServerGet::doImage(const std::string &pLetter, const std::wstring &pP } else { - ServerLogger::Log(clientid, "Pipe to client unexpectedly closed has_error="+nconvert(cc->hasError()), LL_ERROR); + ServerLogger::Log(clientid, "Pipe to client unexpectedly closed has_error="+(cc==NULL?"NULL":nconvert(cc->hasError())), LL_ERROR); goto do_image_cleanup; } } @@ -715,9 +715,13 @@ bool BackupServerGet::doImage(const std::string &pLetter, const std::wstring &pP } } - transferred_bytes+=cc->getTransferedBytes(); - Server->destroy(cc); + if(cc!=NULL) + { + transferred_bytes+=cc->getTransferedBytes(); + Server->destroy(cc); + } if(hashfile!=NULL) Server->destroy(hashfile); + if(vhdfile!=NULL) { vhdfile->freeBuffer(blockdata); @@ -821,7 +825,7 @@ bool BackupServerGet::doImage(const std::string &pLetter, const std::wstring &pP memcpy(&dig, &buffer[off+2*sizeof(int64)], sha_size); - if( (nextblock0) + if( (nextblock0) { if(nextblock