Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(48)

Side by Side Diff: content/common/sandbox_win.cc

Issue 661833004: Type conversion fixes, content/ edition. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 6 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « no previous file | content/shell/tools/plugin/PluginObject.cpp » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "content/common/sandbox_win.h" 5 #include "content/common/sandbox_win.h"
6 6
7 #include <string> 7 #include <string>
8 8
9 #include "base/base_switches.h" 9 #include "base/base_switches.h"
10 #include "base/command_line.h" 10 #include "base/command_line.h"
(...skipping 175 matching lines...) Expand 10 before | Expand all | Expand 10 after
186 if (!module) { 186 if (!module) {
187 // The module could have been loaded with a 8.3 short name. We check 187 // The module could have been loaded with a 8.3 short name. We check
188 // the three most common cases: 'thelongname.dll' becomes 188 // the three most common cases: 'thelongname.dll' becomes
189 // 'thelon~1.dll', 'thelon~2.dll' and 'thelon~3.dll'. 189 // 'thelon~1.dll', 'thelon~2.dll' and 'thelon~3.dll'.
190 std::wstring name(module_name); 190 std::wstring name(module_name);
191 size_t period = name.rfind(L'.'); 191 size_t period = name.rfind(L'.');
192 DCHECK_NE(std::string::npos, period); 192 DCHECK_NE(std::string::npos, period);
193 DCHECK_LE(3U, (name.size() - period)); 193 DCHECK_LE(3U, (name.size() - period));
194 if (period <= 8) 194 if (period <= 8)
195 return; 195 return;
196 for (int ix = 0; ix < 3; ++ix) { 196 for (wchar_t ix = '1'; ix <= '3'; ++ix) {
197 const wchar_t suffix[] = {'~', ('1' + ix), 0}; 197 const wchar_t suffix[] = {'~', ix, 0};
198 std::wstring alt_name = name.substr(0, 6) + suffix; 198 std::wstring alt_name = name.substr(0, 6) + suffix;
199 alt_name += name.substr(period, name.size()); 199 alt_name += name.substr(period, name.size());
200 if (check_in_browser) { 200 if (check_in_browser) {
201 module = ::GetModuleHandleW(alt_name.c_str()); 201 module = ::GetModuleHandleW(alt_name.c_str());
202 if (!module) 202 if (!module)
203 return; 203 return;
204 // We found it, but because it only has 6 significant letters, we 204 // We found it, but because it only has 6 significant letters, we
205 // want to make sure it is the right one. 205 // want to make sure it is the right one.
206 if (!IsExpandedModuleName(module, module_name)) 206 if (!IsExpandedModuleName(module, module_name))
207 return; 207 return;
(...skipping 551 matching lines...) Expand 10 before | Expand all | Expand 10 after
759 } 759 }
760 760
761 return false; 761 return false;
762 } 762 }
763 763
764 bool BrokerAddTargetPeer(HANDLE peer_process) { 764 bool BrokerAddTargetPeer(HANDLE peer_process) {
765 return g_broker_services->AddTargetPeer(peer_process) == sandbox::SBOX_ALL_OK; 765 return g_broker_services->AddTargetPeer(peer_process) == sandbox::SBOX_ALL_OK;
766 } 766 }
767 767
768 } // namespace content 768 } // namespace content
OLDNEW
« no previous file with comments | « no previous file | content/shell/tools/plugin/PluginObject.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698