From f0600f1bba63f638657a524d3738dda728bc2c33 Mon Sep 17 00:00:00 2001 From: "tommi@chromium.org" Date: Tue, 8 Jun 2010 22:40:35 +0000 Subject: Catch possible out of memory situations when looking for the meta tag. TEST=See bug. BUG=46045 Review URL: http://codereview.chromium.org/2728001 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@49198 0039d316-1c4b-4281-b951-d872f2087c98 --- chrome_frame/urlmon_bind_status_callback.cc | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) (limited to 'chrome_frame') diff --git a/chrome_frame/urlmon_bind_status_callback.cc b/chrome_frame/urlmon_bind_status_callback.cc index 3483917..da21576 100644 --- a/chrome_frame/urlmon_bind_status_callback.cc +++ b/chrome_frame/urlmon_bind_status_callback.cc @@ -177,12 +177,12 @@ void SniffData::DetermineRendererType(bool last_chance) { if (is_cache_valid() && cache_) { HGLOBAL memory = NULL; GetHGlobalFromStream(cache_, &memory); - char* buffer = reinterpret_cast(GlobalLock(memory)); + const char* buffer = reinterpret_cast(GlobalLock(memory)); std::wstring html_contents; // TODO(joshia): detect and handle different content encodings if (buffer && size_) { - UTF8ToWide(buffer, size_, &html_contents); + UTF8ToWide(buffer, std::min(size_, kMaxSniffSize), &html_contents); GlobalUnlock(memory); } @@ -197,8 +197,8 @@ void SniffData::DetermineRendererType(bool last_chance) { } } DLOG(INFO) << __FUNCTION__ << "Url: " << url_ << - StringPrintf("Renderer type: %s", - renderer_type_ == CHROME ? "CHROME" : "OTHER"); + StringPrintf("Renderer type: %s", + renderer_type_ == CHROME ? "CHROME" : "OTHER"); } } -- cgit v1.1