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

Side by Side Diff: remoting/host/win/com_security.cc

Issue 281223002: Removed LOG_GETLASTERROR and LOG_ERRNO macros. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Wed 05/14/2014 11:20:03.21 Created 6 years, 7 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 | Annotate | Revision Log
« no previous file with comments | « remoting/host/usage_stats_consent_win.cc ('k') | remoting/host/win/elevated_controller.cc » ('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 2013 The Chromium Authors. All rights reserved. 1 // Copyright 2013 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 "remoting/host/win/com_security.h" 5 #include "remoting/host/win/com_security.h"
6 6
7 #include <objidl.h> 7 #include <objidl.h>
8 8
9 #include "base/basictypes.h" 9 #include "base/basictypes.h"
10 #include "base/compiler_specific.h" 10 #include "base/compiler_specific.h"
11 #include "base/logging.h" 11 #include "base/logging.h"
12 #include "base/win/windows_version.h" 12 #include "base/win/windows_version.h"
13 #include "remoting/host/win/security_descriptor.h" 13 #include "remoting/host/win/security_descriptor.h"
14 14
15 namespace remoting { 15 namespace remoting {
16 16
17 bool InitializeComSecurity(const std::string& security_descriptor, 17 bool InitializeComSecurity(const std::string& security_descriptor,
18 const std::string& mandatory_label, 18 const std::string& mandatory_label,
19 bool activate_as_activator) { 19 bool activate_as_activator) {
20 std::string sddl = security_descriptor; 20 std::string sddl = security_descriptor;
21 if (base::win::GetVersion() >= base::win::VERSION_VISTA) { 21 if (base::win::GetVersion() >= base::win::VERSION_VISTA) {
22 sddl += mandatory_label; 22 sddl += mandatory_label;
23 } 23 }
24 24
25 // Convert the SDDL description into a security descriptor in absolute format. 25 // Convert the SDDL description into a security descriptor in absolute format.
26 ScopedSd relative_sd = ConvertSddlToSd(sddl); 26 ScopedSd relative_sd = ConvertSddlToSd(sddl);
27 if (!relative_sd) { 27 if (!relative_sd) {
28 LOG_GETLASTERROR(ERROR) << "Failed to create a security descriptor"; 28 PLOG(ERROR) << "Failed to create a security descriptor";
29 return false; 29 return false;
30 } 30 }
31 ScopedSd absolute_sd; 31 ScopedSd absolute_sd;
32 ScopedAcl dacl; 32 ScopedAcl dacl;
33 ScopedSid group; 33 ScopedSid group;
34 ScopedSid owner; 34 ScopedSid owner;
35 ScopedAcl sacl; 35 ScopedAcl sacl;
36 if (!MakeScopedAbsoluteSd(relative_sd, &absolute_sd, &dacl, &group, &owner, 36 if (!MakeScopedAbsoluteSd(relative_sd, &absolute_sd, &dacl, &group, &owner,
37 &sacl)) { 37 &sacl)) {
38 LOG_GETLASTERROR(ERROR) << "MakeScopedAbsoluteSd() failed"; 38 PLOG(ERROR) << "MakeScopedAbsoluteSd() failed";
39 return false; 39 return false;
40 } 40 }
41 41
42 DWORD capabilities = EOAC_DYNAMIC_CLOAKING; 42 DWORD capabilities = EOAC_DYNAMIC_CLOAKING;
43 if (!activate_as_activator) 43 if (!activate_as_activator)
44 capabilities |= EOAC_DISABLE_AAA; 44 capabilities |= EOAC_DISABLE_AAA;
45 45
46 // Apply the security descriptor and default security settings. See 46 // Apply the security descriptor and default security settings. See
47 // InitializeComSecurity's declaration for details. 47 // InitializeComSecurity's declaration for details.
48 HRESULT result = CoInitializeSecurity( 48 HRESULT result = CoInitializeSecurity(
49 absolute_sd.get(), 49 absolute_sd.get(),
50 -1, // Let COM choose which authentication services to register. 50 -1, // Let COM choose which authentication services to register.
51 NULL, // See above. 51 NULL, // See above.
52 NULL, // Reserved, must be NULL. 52 NULL, // Reserved, must be NULL.
53 RPC_C_AUTHN_LEVEL_PKT_PRIVACY, 53 RPC_C_AUTHN_LEVEL_PKT_PRIVACY,
54 RPC_C_IMP_LEVEL_IDENTIFY, 54 RPC_C_IMP_LEVEL_IDENTIFY,
55 NULL, // Default authentication information is not provided. 55 NULL, // Default authentication information is not provided.
56 capabilities, 56 capabilities,
57 NULL); /// Reserved, must be NULL 57 NULL); /// Reserved, must be NULL
58 if (FAILED(result)) { 58 if (FAILED(result)) {
59 LOG(ERROR) << "CoInitializeSecurity() failed, result=0x" 59 LOG(ERROR) << "CoInitializeSecurity() failed, result=0x"
60 << std::hex << result << std::dec << "."; 60 << std::hex << result << std::dec << ".";
61 return false; 61 return false;
62 } 62 }
63 63
64 return true; 64 return true;
65 } 65 }
66 66
67 } // namespace remoting 67 } // namespace remoting
OLDNEW
« no previous file with comments | « remoting/host/usage_stats_consent_win.cc ('k') | remoting/host/win/elevated_controller.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698