summaryrefslogtreecommitdiffstats
path: root/chrome/browser/safe_browsing
diff options
context:
space:
mode:
authordarin@chromium.org <darin@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2011-02-04 00:39:34 +0000
committerdarin@chromium.org <darin@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2011-02-04 00:39:34 +0000
commit55181778eaf298eb2035f64d20a7ebe4e447a75e (patch)
tree691b9d2524539f3818f93c91db601a73632fa513 /chrome/browser/safe_browsing
parent0e3ff908d6a65ea0e86ebf6a0093d2f12f16034d (diff)
downloadchromium_src-55181778eaf298eb2035f64d20a7ebe4e447a75e.zip
chromium_src-55181778eaf298eb2035f64d20a7ebe4e447a75e.tar.gz
chromium_src-55181778eaf298eb2035f64d20a7ebe4e447a75e.tar.bz2
Copy buffers in base::FileUtilProxy::{Read,Write} to avoid memory corruption.
If caller has called PPB_FileIO_Impl::Close() while a read or write operation is in flight, and deletes the read or write buffer, we now avoid corrupting memory. For Write, FileUtilProxy::Write simply copies the input buffer before passing control to the FILE thread. For Read, the caller no longer passes a buffer; instead, they are passed a const char* in the ReadCallback. One caller of FileUtilProxy::Read outside of PPAPI was also updated. BUG=70285 R=darin Patch by Adam Klein (adamk@chromium.org) Originally reviewed at http://codereview.chromium.org/6312040/ Review URL: http://codereview.chromium.org/6349090 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@73714 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/browser/safe_browsing')
-rw-r--r--chrome/browser/safe_browsing/client_side_detection_service.cc2
1 files changed, 1 insertions, 1 deletions
diff --git a/chrome/browser/safe_browsing/client_side_detection_service.cc b/chrome/browser/safe_browsing/client_side_detection_service.cc
index 008a2d2..3d55132 100644
--- a/chrome/browser/safe_browsing/client_side_detection_service.cc
+++ b/chrome/browser/safe_browsing/client_side_detection_service.cc
@@ -161,7 +161,7 @@ void ClientSideDetectionService::CreateModelFileDone(
base::PassPlatformFile file,
bool created) {
model_file_ = file.ReleaseValue();
- base::FileUtilProxy::ReadWriteCallback* cb = callback_factory_.NewCallback(
+ base::FileUtilProxy::WriteCallback* cb = callback_factory_.NewCallback(
&ClientSideDetectionService::WriteModelFileDone);
if (!created ||
base::PLATFORM_FILE_OK != error_code ||