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

Side by Side Diff: third_party/crashpad/crashpad/util/win/process_info.cc

Issue 2814043003: Update Crashpad to 1f28a123a4c9449e3d7ddad4ff00dacd366d5216 (Closed)
Patch Set: Add missing GN config to fix compile/link. Created 3 years, 8 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 | « third_party/crashpad/crashpad/util/util_test.gyp ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2015 The Crashpad Authors. All rights reserved. 1 // Copyright 2015 The Crashpad Authors. All rights reserved.
2 // 2 //
3 // Licensed under the Apache License, Version 2.0 (the "License"); 3 // Licensed under the Apache License, Version 2.0 (the "License");
4 // you may not use this file except in compliance with the License. 4 // you may not use this file except in compliance with the License.
5 // You may obtain a copy of the License at 5 // You may obtain a copy of the License at
6 // 6 //
7 // http://www.apache.org/licenses/LICENSE-2.0 7 // http://www.apache.org/licenses/LICENSE-2.0
8 // 8 //
9 // Unless required by applicable law or agreed to in writing, software 9 // Unless required by applicable law or agreed to in writing, software
10 // distributed under the License is distributed on an "AS IS" BASIS, 10 // distributed under the License is distributed on an "AS IS" BASIS,
(...skipping 139 matching lines...) Expand 10 before | Expand all | Expand 10 after
150 OBJECT_INFORMATION_CLASS object_information_class, 150 OBJECT_INFORMATION_CLASS object_information_class,
151 ULONG minimum_size) { 151 ULONG minimum_size) {
152 ULONG size = minimum_size; 152 ULONG size = minimum_size;
153 ULONG return_length; 153 ULONG return_length;
154 std::unique_ptr<uint8_t[]> buffer(new uint8_t[size]); 154 std::unique_ptr<uint8_t[]> buffer(new uint8_t[size]);
155 NTSTATUS status = crashpad::NtQueryObject( 155 NTSTATUS status = crashpad::NtQueryObject(
156 handle, object_information_class, buffer.get(), size, &return_length); 156 handle, object_information_class, buffer.get(), size, &return_length);
157 if (status == STATUS_INFO_LENGTH_MISMATCH) { 157 if (status == STATUS_INFO_LENGTH_MISMATCH) {
158 DCHECK_GT(return_length, size); 158 DCHECK_GT(return_length, size);
159 size = return_length; 159 size = return_length;
160
161 // Free the old buffer before attempting to allocate a new one.
162 buffer.reset();
163
160 buffer.reset(new uint8_t[size]); 164 buffer.reset(new uint8_t[size]);
161 status = crashpad::NtQueryObject( 165 status = crashpad::NtQueryObject(
162 handle, object_information_class, buffer.get(), size, &return_length); 166 handle, object_information_class, buffer.get(), size, &return_length);
163 } 167 }
164 168
165 if (!NT_SUCCESS(status)) { 169 if (!NT_SUCCESS(status)) {
166 NTSTATUS_LOG(ERROR, status) << "NtQueryObject"; 170 NTSTATUS_LOG(ERROR, status) << "NtQueryObject";
167 return nullptr; 171 return nullptr;
168 } 172 }
169 173
174 DCHECK_LE(return_length, size);
170 DCHECK_GE(return_length, minimum_size); 175 DCHECK_GE(return_length, minimum_size);
171 return buffer; 176 return buffer;
172 } 177 }
173 178
174 } // namespace 179 } // namespace
175 180
176 template <class Traits> 181 template <class Traits>
177 bool GetProcessBasicInformation(HANDLE process, 182 bool GetProcessBasicInformation(HANDLE process,
178 bool is_wow64, 183 bool is_wow64,
179 ProcessInfo* process_info, 184 ProcessInfo* process_info,
(...skipping 535 matching lines...) Expand 10 before | Expand all | Expand 10 after
715 } else { 720 } else {
716 result.push_back(as_ranges[i]); 721 result.push_back(as_ranges[i]);
717 } 722 }
718 DCHECK(result.back().IsValid()); 723 DCHECK(result.back().IsValid());
719 } 724 }
720 725
721 return result; 726 return result;
722 } 727 }
723 728
724 } // namespace crashpad 729 } // namespace crashpad
OLDNEW
« no previous file with comments | « third_party/crashpad/crashpad/util/util_test.gyp ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698