From ddc79d04181f6c0e5be4851ee7858eaf24d378fd Mon Sep 17 00:00:00 2001 From: "henrike@webrtc.org" Date: Fri, 23 May 2014 18:40:46 +0000 Subject: [PATCH] Rebase webrtc/base with r6232: cd webrtc/base svn diff -r 6231:6232 http://webrtc.googlecode.com/svn/trunk/talk/base > 6232.diff patch -p0 -i 6232.diff BUG=3379 TBR=pbos@webrtc.org Review URL: https://webrtc-codereview.appspot.com/14599004 git-svn-id: http://webrtc.googlecode.com/svn/trunk@6239 4adac7df-926f-26a2-2b94-8c16560cd09d --- webrtc/base/proxydetect.cc | 30 +++++++++++++++--------------- 1 file changed, 15 insertions(+), 15 deletions(-) diff --git a/webrtc/base/proxydetect.cc b/webrtc/base/proxydetect.cc index 716888637..7265f4fd9 100644 --- a/webrtc/base/proxydetect.cc +++ b/webrtc/base/proxydetect.cc @@ -621,27 +621,27 @@ bool IsDefaultBrowserFirefox() { if (ERROR_SUCCESS != result) return false; - wchar_t* value = NULL; DWORD size, type; + bool success = false; result = RegQueryValueEx(key, L"", 0, &type, NULL, &size); - if (REG_SZ != type) { - result = ERROR_ACCESS_DENIED; // Any error is fine - } else if (ERROR_SUCCESS == result) { - value = new wchar_t[size+1]; + if (result == ERROR_SUCCESS && type == REG_SZ) { + wchar_t* value = new wchar_t[size+1]; BYTE* buffer = reinterpret_cast(value); result = RegQueryValueEx(key, L"", 0, &type, buffer, &size); - } - RegCloseKey(key); - - bool success = false; - if (ERROR_SUCCESS == result) { - value[size] = L'\0'; - for (size_t i = 0; i < size; ++i) { - value[i] = tolowercase(value[i]); + if (result == ERROR_SUCCESS) { + // Size returned by RegQueryValueEx is in bytes, convert to number of + // wchar_t's. + size /= sizeof(value[0]); + value[size] = L'\0'; + for (size_t i = 0; i < size; ++i) { + value[i] = tolowercase(value[i]); + } + success = (NULL != strstr(value, L"firefox.exe")); } - success = (NULL != strstr(value, L"firefox.exe")); + delete[] value; } - delete [] value; + + RegCloseKey(key); return success; }