| Index: chrome/browser/task_manager/sampling/shared_sampler_win.cc
|
| diff --git a/chrome/browser/task_manager/sampling/shared_sampler_win.cc b/chrome/browser/task_manager/sampling/shared_sampler_win.cc
|
| index 4cd06e986356e47e9d70536d15eb17bc3df8475d..e54e2f8295795c7be25563d0f41d3d330498eecf 100644
|
| --- a/chrome/browser/task_manager/sampling/shared_sampler_win.cc
|
| +++ b/chrome/browser/task_manager/sampling/shared_sampler_win.cc
|
| @@ -457,10 +457,12 @@ std::unique_ptr<ProcessDataSnapshot> SharedSampler::CaptureSnapshot() {
|
| // the buffer boundary.
|
| if (offset + sizeof(SYSTEM_PROCESS_INFORMATION) > data_buffer.size())
|
| break;
|
| - if (offset + sizeof(SYSTEM_PROCESS_INFORMATION) +
|
| - (pi->NumberOfThreads - 1) * sizeof(SYSTEM_THREAD_INFORMATION) >
|
| - data_buffer.size())
|
| + if (pi->NumberOfThreads > 0 &&
|
| + (offset + sizeof(SYSTEM_PROCESS_INFORMATION) +
|
| + (pi->NumberOfThreads - 1) * sizeof(SYSTEM_THREAD_INFORMATION) >
|
| + data_buffer.size())) {
|
| break;
|
| + }
|
|
|
| if (pi->ImageName.Buffer) {
|
| // Validate that the image name is within the buffer boundary.
|
|
|