Fix memory leak in ppc64 stackwalker

BUG=757166

Change-Id: I967a6903332b9c3d16b583f7fa4d3c9c44c2f729
Reviewed-on: https://chromium-review.googlesource.com/643267
Reviewed-by: Leonard Mosescu <mosescu@chromium.org>
This commit is contained in:
Tobias Sargeant 2017-08-30 13:04:15 +01:00 committed by Tobias Sargeant
parent 26b988681d
commit c4335f0435

View file

@ -32,6 +32,7 @@
// See stackwalker_ppc64.h for documentation. // See stackwalker_ppc64.h for documentation.
#include "common/scoped_ptr.h"
#include "processor/stackwalker_ppc64.h" #include "processor/stackwalker_ppc64.h"
#include "google_breakpad/processor/call_stack.h" #include "google_breakpad/processor/call_stack.h"
#include "google_breakpad/processor/memory_region.h" #include "google_breakpad/processor/memory_region.h"
@ -112,7 +113,7 @@ StackFrame* StackwalkerPPC64::GetCallerFrame(const CallStack* stack,
return NULL; return NULL;
} }
StackFramePPC64* frame = new StackFramePPC64(); scoped_ptr<StackFramePPC64> frame(new StackFramePPC64());
frame->context = last_frame->context; frame->context = last_frame->context;
frame->context.srr0 = instruction; frame->context.srr0 = instruction;
@ -138,7 +139,7 @@ StackFrame* StackwalkerPPC64::GetCallerFrame(const CallStack* stack,
// return address value may access the context.srr0 field of StackFramePPC64. // return address value may access the context.srr0 field of StackFramePPC64.
frame->instruction = frame->context.srr0 - 8; frame->instruction = frame->context.srr0 - 8;
return frame; return frame.release();
} }