From 8e77c078d68ebd25d70f92f70a5aa630b19c7ee2 Mon Sep 17 00:00:00 2001 From: "thestig@chromium.org" Date: Thu, 26 Aug 2010 21:38:51 +0000 Subject: Limit the number of frames we try to walk to prevent runaway processors. Review URL: http://breakpad.appspot.com/175001 git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@672 4c0a9323-5329-0410-9bdc-e9ce6186880e --- src/google_breakpad/processor/stackwalker.h | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) (limited to 'src/google_breakpad') diff --git a/src/google_breakpad/processor/stackwalker.h b/src/google_breakpad/processor/stackwalker.h index 3abcee75..36d721d1 100644 --- a/src/google_breakpad/processor/stackwalker.h +++ b/src/google_breakpad/processor/stackwalker.h @@ -48,7 +48,6 @@ namespace google_breakpad { class CallStack; -class CodeModule; class CodeModules; class MemoryRegion; class MinidumpContext; @@ -80,6 +79,9 @@ class Stackwalker { SymbolSupplier *supplier, SourceLineResolverInterface *resolver); + static void set_max_frames(u_int32_t max_frames) { max_frames_ = max_frames; } + static u_int32_t max_frames() { return max_frames_; } + protected: // system_info identifies the operating system, NULL or empty if unknown. // memory identifies a MemoryRegion that provides the stack memory @@ -146,6 +148,10 @@ class Stackwalker { // this in order to avoid repeatedly looking them up again within // one minidump. set no_symbol_modules_; + + // The maximum number of frames Stackwalker will walk through. + // This defaults to 1024 to prevent infinite loops. + static u_int32_t max_frames_; }; -- cgit v1.2.1