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

Side by Side Diff: sandbox/win/src/filesystem_dispatcher.cc

Issue 109843003: Replace wstring with string16 in sandbox (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 7 years 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 | « sandbox/win/src/filesystem_dispatcher.h ('k') | sandbox/win/src/filesystem_policy.h » ('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) 2006-2010 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2006-2010 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 "sandbox/win/src/filesystem_dispatcher.h" 5 #include "sandbox/win/src/filesystem_dispatcher.h"
6 6
7 #include "sandbox/win/src/crosscall_client.h" 7 #include "sandbox/win/src/crosscall_client.h"
8 #include "sandbox/win/src/filesystem_interception.h" 8 #include "sandbox/win/src/filesystem_interception.h"
9 #include "sandbox/win/src/filesystem_policy.h" 9 #include "sandbox/win/src/filesystem_policy.h"
10 #include "sandbox/win/src/interception.h" 10 #include "sandbox/win/src/interception.h"
(...skipping 65 matching lines...) Expand 10 before | Expand all | Expand 10 after
76 76
77 case IPC_NTSETINFO_RENAME_TAG: 77 case IPC_NTSETINFO_RENAME_TAG:
78 return INTERCEPT_NT(manager, NtSetInformationFile, SET_INFO_FILE_ID, 24); 78 return INTERCEPT_NT(manager, NtSetInformationFile, SET_INFO_FILE_ID, 24);
79 79
80 default: 80 default:
81 return false; 81 return false;
82 } 82 }
83 } 83 }
84 84
85 bool FilesystemDispatcher::NtCreateFile( 85 bool FilesystemDispatcher::NtCreateFile(
86 IPCInfo* ipc, std::wstring* name, DWORD attributes, DWORD desired_access, 86 IPCInfo* ipc, base::string16* name, DWORD attributes, DWORD desired_access,
87 DWORD file_attributes, DWORD share_access, DWORD create_disposition, 87 DWORD file_attributes, DWORD share_access, DWORD create_disposition,
88 DWORD create_options) { 88 DWORD create_options) {
89 if (!PreProcessName(*name, name)) { 89 if (!PreProcessName(*name, name)) {
90 // The path requested might contain a reparse point. 90 // The path requested might contain a reparse point.
91 ipc->return_info.nt_status = STATUS_ACCESS_DENIED; 91 ipc->return_info.nt_status = STATUS_ACCESS_DENIED;
92 return true; 92 return true;
93 } 93 }
94 94
95 const wchar_t* filename = name->c_str(); 95 const wchar_t* filename = name->c_str();
96 96
(...skipping 22 matching lines...) Expand all
119 return true; 119 return true;
120 } 120 }
121 // Return operation status on the IPC. 121 // Return operation status on the IPC.
122 ipc->return_info.extended[0].ulong_ptr = io_information; 122 ipc->return_info.extended[0].ulong_ptr = io_information;
123 ipc->return_info.nt_status = nt_status; 123 ipc->return_info.nt_status = nt_status;
124 ipc->return_info.handle = handle; 124 ipc->return_info.handle = handle;
125 return true; 125 return true;
126 } 126 }
127 127
128 bool FilesystemDispatcher::NtOpenFile( 128 bool FilesystemDispatcher::NtOpenFile(
129 IPCInfo* ipc, std::wstring* name, DWORD attributes, DWORD desired_access, 129 IPCInfo* ipc, base::string16* name, DWORD attributes, DWORD desired_access,
130 DWORD share_access, DWORD open_options) { 130 DWORD share_access, DWORD open_options) {
131 if (!PreProcessName(*name, name)) { 131 if (!PreProcessName(*name, name)) {
132 // The path requested might contain a reparse point. 132 // The path requested might contain a reparse point.
133 ipc->return_info.nt_status = STATUS_ACCESS_DENIED; 133 ipc->return_info.nt_status = STATUS_ACCESS_DENIED;
134 return true; 134 return true;
135 } 135 }
136 136
137 const wchar_t* filename = name->c_str(); 137 const wchar_t* filename = name->c_str();
138 138
139 ULONG broker = TRUE; 139 ULONG broker = TRUE;
(...skipping 19 matching lines...) Expand all
159 return true; 159 return true;
160 } 160 }
161 // Return operation status on the IPC. 161 // Return operation status on the IPC.
162 ipc->return_info.extended[0].ulong_ptr = io_information; 162 ipc->return_info.extended[0].ulong_ptr = io_information;
163 ipc->return_info.nt_status = nt_status; 163 ipc->return_info.nt_status = nt_status;
164 ipc->return_info.handle = handle; 164 ipc->return_info.handle = handle;
165 return true; 165 return true;
166 } 166 }
167 167
168 bool FilesystemDispatcher::NtQueryAttributesFile( 168 bool FilesystemDispatcher::NtQueryAttributesFile(
169 IPCInfo* ipc, std::wstring* name, DWORD attributes, CountedBuffer* info) { 169 IPCInfo* ipc, base::string16* name, DWORD attributes, CountedBuffer* info) {
170 if (sizeof(FILE_BASIC_INFORMATION) != info->Size()) 170 if (sizeof(FILE_BASIC_INFORMATION) != info->Size())
171 return false; 171 return false;
172 172
173 if (!PreProcessName(*name, name)) { 173 if (!PreProcessName(*name, name)) {
174 // The path requested might contain a reparse point. 174 // The path requested might contain a reparse point.
175 ipc->return_info.nt_status = STATUS_ACCESS_DENIED; 175 ipc->return_info.nt_status = STATUS_ACCESS_DENIED;
176 return true; 176 return true;
177 } 177 }
178 178
179 ULONG broker = TRUE; 179 ULONG broker = TRUE;
(...skipping 17 matching lines...) Expand all
197 ipc->return_info.nt_status = STATUS_ACCESS_DENIED; 197 ipc->return_info.nt_status = STATUS_ACCESS_DENIED;
198 return true; 198 return true;
199 } 199 }
200 200
201 // Return operation status on the IPC. 201 // Return operation status on the IPC.
202 ipc->return_info.nt_status = nt_status; 202 ipc->return_info.nt_status = nt_status;
203 return true; 203 return true;
204 } 204 }
205 205
206 bool FilesystemDispatcher::NtQueryFullAttributesFile( 206 bool FilesystemDispatcher::NtQueryFullAttributesFile(
207 IPCInfo* ipc, std::wstring* name, DWORD attributes, CountedBuffer* info) { 207 IPCInfo* ipc, base::string16* name, DWORD attributes, CountedBuffer* info) {
208 if (sizeof(FILE_NETWORK_OPEN_INFORMATION) != info->Size()) 208 if (sizeof(FILE_NETWORK_OPEN_INFORMATION) != info->Size())
209 return false; 209 return false;
210 210
211 if (!PreProcessName(*name, name)) { 211 if (!PreProcessName(*name, name)) {
212 // The path requested might contain a reparse point. 212 // The path requested might contain a reparse point.
213 ipc->return_info.nt_status = STATUS_ACCESS_DENIED; 213 ipc->return_info.nt_status = STATUS_ACCESS_DENIED;
214 return true; 214 return true;
215 } 215 }
216 216
217 ULONG broker = TRUE; 217 ULONG broker = TRUE;
(...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after
250 return false; 250 return false;
251 if (length != info->Size()) 251 if (length != info->Size())
252 return false; 252 return false;
253 253
254 FILE_RENAME_INFORMATION* rename_info = 254 FILE_RENAME_INFORMATION* rename_info =
255 reinterpret_cast<FILE_RENAME_INFORMATION*>(info->Buffer()); 255 reinterpret_cast<FILE_RENAME_INFORMATION*>(info->Buffer());
256 256
257 if (!IsSupportedRenameCall(rename_info, length, info_class)) 257 if (!IsSupportedRenameCall(rename_info, length, info_class))
258 return false; 258 return false;
259 259
260 std::wstring name; 260 base::string16 name;
261 name.assign(rename_info->FileName, rename_info->FileNameLength / 261 name.assign(rename_info->FileName, rename_info->FileNameLength /
262 sizeof(rename_info->FileName[0])); 262 sizeof(rename_info->FileName[0]));
263 if (!PreProcessName(name, &name)) { 263 if (!PreProcessName(name, &name)) {
264 // The path requested might contain a reparse point. 264 // The path requested might contain a reparse point.
265 ipc->return_info.nt_status = STATUS_ACCESS_DENIED; 265 ipc->return_info.nt_status = STATUS_ACCESS_DENIED;
266 return true; 266 return true;
267 } 267 }
268 268
269 ULONG broker = TRUE; 269 ULONG broker = TRUE;
270 const wchar_t* filename = name.c_str(); 270 const wchar_t* filename = name.c_str();
(...skipping 17 matching lines...) Expand all
288 ipc->return_info.nt_status = STATUS_ACCESS_DENIED; 288 ipc->return_info.nt_status = STATUS_ACCESS_DENIED;
289 return true; 289 return true;
290 } 290 }
291 291
292 // Return operation status on the IPC. 292 // Return operation status on the IPC.
293 ipc->return_info.nt_status = nt_status; 293 ipc->return_info.nt_status = nt_status;
294 return true; 294 return true;
295 } 295 }
296 296
297 } // namespace sandbox 297 } // namespace sandbox
OLDNEW
« no previous file with comments | « sandbox/win/src/filesystem_dispatcher.h ('k') | sandbox/win/src/filesystem_policy.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698