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

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

Issue 1538283002: Switch to standard integer types in sandbox/. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: macros Created 4 years, 12 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 | « sandbox/win/src/filesystem_dispatcher.cc ('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-2008 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2006-2008 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_interception.h" 5 #include "sandbox/win/src/filesystem_interception.h"
6 6
7 #include <stdint.h>
8
7 #include "sandbox/win/src/crosscall_client.h" 9 #include "sandbox/win/src/crosscall_client.h"
8 #include "sandbox/win/src/ipc_tags.h" 10 #include "sandbox/win/src/ipc_tags.h"
9 #include "sandbox/win/src/policy_params.h" 11 #include "sandbox/win/src/policy_params.h"
10 #include "sandbox/win/src/policy_target.h" 12 #include "sandbox/win/src/policy_target.h"
11 #include "sandbox/win/src/sandbox_factory.h" 13 #include "sandbox/win/src/sandbox_factory.h"
12 #include "sandbox/win/src/sandbox_nt_util.h" 14 #include "sandbox/win/src/sandbox_nt_util.h"
13 #include "sandbox/win/src/sharedmem_ipc_client.h" 15 #include "sandbox/win/src/sharedmem_ipc_client.h"
14 #include "sandbox/win/src/target_services.h" 16 #include "sandbox/win/src/target_services.h"
15 17
16 namespace sandbox { 18 namespace sandbox {
(...skipping 22 matching lines...) Expand all
39 do { 41 do {
40 if (!ValidParameter(file, sizeof(HANDLE), WRITE)) 42 if (!ValidParameter(file, sizeof(HANDLE), WRITE))
41 break; 43 break;
42 if (!ValidParameter(io_status, sizeof(IO_STATUS_BLOCK), WRITE)) 44 if (!ValidParameter(io_status, sizeof(IO_STATUS_BLOCK), WRITE))
43 break; 45 break;
44 46
45 void* memory = GetGlobalIPCMemory(); 47 void* memory = GetGlobalIPCMemory();
46 if (NULL == memory) 48 if (NULL == memory)
47 break; 49 break;
48 50
49 uint32 attributes = 0; 51 uint32_t attributes = 0;
50 NTSTATUS ret = AllocAndCopyName(object_attributes, &name, &attributes, 52 NTSTATUS ret = AllocAndCopyName(object_attributes, &name, &attributes,
51 NULL); 53 NULL);
52 if (!NT_SUCCESS(ret) || NULL == name) 54 if (!NT_SUCCESS(ret) || NULL == name)
53 break; 55 break;
54 56
55 uint32 desired_access_uint32 = desired_access; 57 uint32_t desired_access_uint32 = desired_access;
56 uint32 options_uint32 = options; 58 uint32_t options_uint32 = options;
57 uint32 disposition_uint32 = disposition; 59 uint32_t disposition_uint32 = disposition;
58 uint32 broker = FALSE; 60 uint32_t broker = FALSE;
59 CountedParameterSet<OpenFile> params; 61 CountedParameterSet<OpenFile> params;
60 params[OpenFile::NAME] = ParamPickerMake(name); 62 params[OpenFile::NAME] = ParamPickerMake(name);
61 params[OpenFile::ACCESS] = ParamPickerMake(desired_access_uint32); 63 params[OpenFile::ACCESS] = ParamPickerMake(desired_access_uint32);
62 params[OpenFile::DISPOSITION] = ParamPickerMake(disposition_uint32); 64 params[OpenFile::DISPOSITION] = ParamPickerMake(disposition_uint32);
63 params[OpenFile::OPTIONS] = ParamPickerMake(options_uint32); 65 params[OpenFile::OPTIONS] = ParamPickerMake(options_uint32);
64 params[OpenFile::BROKER] = ParamPickerMake(broker); 66 params[OpenFile::BROKER] = ParamPickerMake(broker);
65 67
66 if (!QueryBroker(IPC_NTCREATEFILE_TAG, params.GetBase())) 68 if (!QueryBroker(IPC_NTCREATEFILE_TAG, params.GetBase()))
67 break; 69 break;
68 70
(...skipping 46 matching lines...) Expand 10 before | Expand all | Expand 10 after
115 do { 117 do {
116 if (!ValidParameter(file, sizeof(HANDLE), WRITE)) 118 if (!ValidParameter(file, sizeof(HANDLE), WRITE))
117 break; 119 break;
118 if (!ValidParameter(io_status, sizeof(IO_STATUS_BLOCK), WRITE)) 120 if (!ValidParameter(io_status, sizeof(IO_STATUS_BLOCK), WRITE))
119 break; 121 break;
120 122
121 void* memory = GetGlobalIPCMemory(); 123 void* memory = GetGlobalIPCMemory();
122 if (NULL == memory) 124 if (NULL == memory)
123 break; 125 break;
124 126
125 uint32 attributes; 127 uint32_t attributes;
126 NTSTATUS ret = AllocAndCopyName(object_attributes, &name, &attributes, 128 NTSTATUS ret = AllocAndCopyName(object_attributes, &name, &attributes,
127 NULL); 129 NULL);
128 if (!NT_SUCCESS(ret) || NULL == name) 130 if (!NT_SUCCESS(ret) || NULL == name)
129 break; 131 break;
130 132
131 uint32 desired_access_uint32 = desired_access; 133 uint32_t desired_access_uint32 = desired_access;
132 uint32 options_uint32 = options; 134 uint32_t options_uint32 = options;
133 uint32 disposition_uint32 = FILE_OPEN; 135 uint32_t disposition_uint32 = FILE_OPEN;
134 uint32 broker = FALSE; 136 uint32_t broker = FALSE;
135 CountedParameterSet<OpenFile> params; 137 CountedParameterSet<OpenFile> params;
136 params[OpenFile::NAME] = ParamPickerMake(name); 138 params[OpenFile::NAME] = ParamPickerMake(name);
137 params[OpenFile::ACCESS] = ParamPickerMake(desired_access_uint32); 139 params[OpenFile::ACCESS] = ParamPickerMake(desired_access_uint32);
138 params[OpenFile::DISPOSITION] = ParamPickerMake(disposition_uint32); 140 params[OpenFile::DISPOSITION] = ParamPickerMake(disposition_uint32);
139 params[OpenFile::OPTIONS] = ParamPickerMake(options_uint32); 141 params[OpenFile::OPTIONS] = ParamPickerMake(options_uint32);
140 params[OpenFile::BROKER] = ParamPickerMake(broker); 142 params[OpenFile::BROKER] = ParamPickerMake(broker);
141 143
142 if (!QueryBroker(IPC_NTOPENFILE_TAG, params.GetBase())) 144 if (!QueryBroker(IPC_NTOPENFILE_TAG, params.GetBase()))
143 break; 145 break;
144 146
(...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after
185 187
186 wchar_t* name = NULL; 188 wchar_t* name = NULL;
187 do { 189 do {
188 if (!ValidParameter(file_attributes, sizeof(FILE_BASIC_INFORMATION), WRITE)) 190 if (!ValidParameter(file_attributes, sizeof(FILE_BASIC_INFORMATION), WRITE))
189 break; 191 break;
190 192
191 void* memory = GetGlobalIPCMemory(); 193 void* memory = GetGlobalIPCMemory();
192 if (NULL == memory) 194 if (NULL == memory)
193 break; 195 break;
194 196
195 uint32 attributes = 0; 197 uint32_t attributes = 0;
196 NTSTATUS ret = AllocAndCopyName(object_attributes, &name, &attributes, 198 NTSTATUS ret = AllocAndCopyName(object_attributes, &name, &attributes,
197 NULL); 199 NULL);
198 if (!NT_SUCCESS(ret) || NULL == name) 200 if (!NT_SUCCESS(ret) || NULL == name)
199 break; 201 break;
200 202
201 InOutCountedBuffer file_info(file_attributes, 203 InOutCountedBuffer file_info(file_attributes,
202 sizeof(FILE_BASIC_INFORMATION)); 204 sizeof(FILE_BASIC_INFORMATION));
203 205
204 uint32 broker = FALSE; 206 uint32_t broker = FALSE;
205 CountedParameterSet<FileName> params; 207 CountedParameterSet<FileName> params;
206 params[FileName::NAME] = ParamPickerMake(name); 208 params[FileName::NAME] = ParamPickerMake(name);
207 params[FileName::BROKER] = ParamPickerMake(broker); 209 params[FileName::BROKER] = ParamPickerMake(broker);
208 210
209 if (!QueryBroker(IPC_NTQUERYATTRIBUTESFILE_TAG, params.GetBase())) 211 if (!QueryBroker(IPC_NTQUERYATTRIBUTESFILE_TAG, params.GetBase()))
210 break; 212 break;
211 213
212 SharedMemIPCClient ipc(memory); 214 SharedMemIPCClient ipc(memory);
213 CrossCallReturn answer = {0}; 215 CrossCallReturn answer = {0};
214 ResultCode code = CrossCall(ipc, IPC_NTQUERYATTRIBUTESFILE_TAG, name, 216 ResultCode code = CrossCall(ipc, IPC_NTQUERYATTRIBUTESFILE_TAG, name,
(...skipping 29 matching lines...) Expand all
244 wchar_t* name = NULL; 246 wchar_t* name = NULL;
245 do { 247 do {
246 if (!ValidParameter(file_attributes, sizeof(FILE_NETWORK_OPEN_INFORMATION), 248 if (!ValidParameter(file_attributes, sizeof(FILE_NETWORK_OPEN_INFORMATION),
247 WRITE)) 249 WRITE))
248 break; 250 break;
249 251
250 void* memory = GetGlobalIPCMemory(); 252 void* memory = GetGlobalIPCMemory();
251 if (NULL == memory) 253 if (NULL == memory)
252 break; 254 break;
253 255
254 uint32 attributes = 0; 256 uint32_t attributes = 0;
255 NTSTATUS ret = AllocAndCopyName(object_attributes, &name, &attributes, 257 NTSTATUS ret = AllocAndCopyName(object_attributes, &name, &attributes,
256 NULL); 258 NULL);
257 if (!NT_SUCCESS(ret) || NULL == name) 259 if (!NT_SUCCESS(ret) || NULL == name)
258 break; 260 break;
259 261
260 InOutCountedBuffer file_info(file_attributes, 262 InOutCountedBuffer file_info(file_attributes,
261 sizeof(FILE_NETWORK_OPEN_INFORMATION)); 263 sizeof(FILE_NETWORK_OPEN_INFORMATION));
262 264
263 uint32 broker = FALSE; 265 uint32_t broker = FALSE;
264 CountedParameterSet<FileName> params; 266 CountedParameterSet<FileName> params;
265 params[FileName::NAME] = ParamPickerMake(name); 267 params[FileName::NAME] = ParamPickerMake(name);
266 params[FileName::BROKER] = ParamPickerMake(broker); 268 params[FileName::BROKER] = ParamPickerMake(broker);
267 269
268 if (!QueryBroker(IPC_NTQUERYFULLATTRIBUTESFILE_TAG, params.GetBase())) 270 if (!QueryBroker(IPC_NTQUERYFULLATTRIBUTESFILE_TAG, params.GetBase()))
269 break; 271 break;
270 272
271 SharedMemIPCClient ipc(memory); 273 SharedMemIPCClient ipc(memory);
272 CrossCallReturn answer = {0}; 274 CrossCallReturn answer = {0};
273 ResultCode code = CrossCall(ipc, IPC_NTQUERYFULLATTRIBUTESFILE_TAG, name, 275 ResultCode code = CrossCall(ipc, IPC_NTQUERYFULLATTRIBUTESFILE_TAG, name,
(...skipping 52 matching lines...) Expand 10 before | Expand all | Expand 10 after
326 object_name.Length = object_name.MaximumLength = 328 object_name.Length = object_name.MaximumLength =
327 static_cast<USHORT>(file_rename_info->FileNameLength); 329 static_cast<USHORT>(file_rename_info->FileNameLength);
328 } __except(EXCEPTION_EXECUTE_HANDLER) { 330 } __except(EXCEPTION_EXECUTE_HANDLER) {
329 break; 331 break;
330 } 332 }
331 333
332 NTSTATUS ret = AllocAndCopyName(&object_attributes, &name, NULL, NULL); 334 NTSTATUS ret = AllocAndCopyName(&object_attributes, &name, NULL, NULL);
333 if (!NT_SUCCESS(ret) || !name) 335 if (!NT_SUCCESS(ret) || !name)
334 break; 336 break;
335 337
336 uint32 broker = FALSE; 338 uint32_t broker = FALSE;
337 CountedParameterSet<FileName> params; 339 CountedParameterSet<FileName> params;
338 params[FileName::NAME] = ParamPickerMake(name); 340 params[FileName::NAME] = ParamPickerMake(name);
339 params[FileName::BROKER] = ParamPickerMake(broker); 341 params[FileName::BROKER] = ParamPickerMake(broker);
340 342
341 if (!QueryBroker(IPC_NTSETINFO_RENAME_TAG, params.GetBase())) 343 if (!QueryBroker(IPC_NTSETINFO_RENAME_TAG, params.GetBase()))
342 break; 344 break;
343 345
344 InOutCountedBuffer io_status_buffer(io_status, sizeof(IO_STATUS_BLOCK)); 346 InOutCountedBuffer io_status_buffer(io_status, sizeof(IO_STATUS_BLOCK));
345 // This is actually not an InOut buffer, only In, but using InOut facility 347 // This is actually not an InOut buffer, only In, but using InOut facility
346 // really helps to simplify the code. 348 // really helps to simplify the code.
(...skipping 11 matching lines...) Expand all
358 status = answer.nt_status; 360 status = answer.nt_status;
359 } while (false); 361 } while (false);
360 362
361 if (name) 363 if (name)
362 operator delete(name, NT_ALLOC); 364 operator delete(name, NT_ALLOC);
363 365
364 return status; 366 return status;
365 } 367 }
366 368
367 } // namespace sandbox 369 } // namespace sandbox
OLDNEW
« no previous file with comments | « sandbox/win/src/filesystem_dispatcher.cc ('k') | sandbox/win/src/filesystem_policy.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698