From 6b46d4e872bfb6174a4832ab4d3a2d2c38d2cf4a Mon Sep 17 00:00:00 2001 From: "ivan.penkov@gmail.com" Date: Tue, 4 Jun 2013 16:51:01 +0000 Subject: Treat warnings as error and fix most level 4 warnings in the breakpad windows client projects. Some of the lint errors in the files touched by this change were also fixed. BUG=533 Review URL: https://breakpad.appspot.com/601002 git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@1189 4c0a9323-5329-0410-9bdc-e9ce6186880e --- src/common/windows/http_upload.cc | 26 ++++++++++++++++---------- 1 file changed, 16 insertions(+), 10 deletions(-) (limited to 'src/common/windows') diff --git a/src/common/windows/http_upload.cc b/src/common/windows/http_upload.cc index aabb9a46..838185b7 100644 --- a/src/common/windows/http_upload.cc +++ b/src/common/windows/http_upload.cc @@ -30,7 +30,7 @@ #include // Disable exception handler warnings. -#pragma warning( disable : 4530 ) +#pragma warning(disable:4530) #include @@ -163,7 +163,7 @@ bool HTTPUpload::SendRequest(const wstring &url, fwprintf(stderr, L"Could not unset receive timeout, continuing...\n"); } } - + if (!HttpSendRequest(request.get(), NULL, 0, const_cast(request_body.data()), static_cast(request_body.size()))) { @@ -215,8 +215,7 @@ bool HTTPUpload::ReadResponse(HINTERNET request, wstring *response) { BOOL return_code; while (((return_code = InternetQueryDataAvailable(request, &bytes_available, - 0, 0)) != 0) && bytes_available > 0) { - + 0, 0)) != 0) && bytes_available > 0) { vector response_buffer(bytes_available); DWORD size_read; @@ -323,6 +322,7 @@ bool HTTPUpload::GenerateRequestBody(const map ¶meters, // static bool HTTPUpload::GetFileContents(const wstring &filename, vector *contents) { + bool rv = false; // The "open" method on pre-MSVC8 ifstream implementations doesn't accept a // wchar_t* filename, so use _wfopen directly in that case. For VC8 and // later, _wfopen has been deprecated in favor of _wfopen_s, which does @@ -336,15 +336,21 @@ bool HTTPUpload::GetFileContents(const wstring &filename, if (file.is_open()) { file.seekg(0, ios::end); std::streamoff length = file.tellg(); - contents->resize(length); - if (length != 0) { - file.seekg(0, ios::beg); - file.read(&((*contents)[0]), length); + // Check for loss of data when converting lenght from std::streamoff into + // std::vector::size_type + std::vector::size_type vector_size = + static_cast::size_type>(length); + if (static_cast(vector_size) == length) { + contents->resize(vector_size); + if (length != 0) { + file.seekg(0, ios::beg); + file.read(&((*contents)[0]), length); + } + rv = true; } file.close(); - return true; } - return false; + return rv; } // static -- cgit v1.2.1