From 227f5188dc4b1005d7ab91fc0ee942e43961b869 Mon Sep 17 00:00:00 2001
From: Mitchel Humpherys <mitchelh@codeaurora.org>
Date: Fri, 18 Apr 2014 14:44:54 -0700
Subject: [PATCH] lrdp-v2: sanity check rtb step_size

msm_rtb_state.step_size should be either 1 or num_cpus(). If it's
greater than num_cpus() error out.

Change-Id: Id67c2e767ff78dc52a9facd2e255efc23df616f8
---
 linux-ramdump-parser-v2/parsers/rtb.py | 4 ++++
 1 file changed, 4 insertions(+)

diff --git a/linux-ramdump-parser-v2/parsers/rtb.py b/linux-ramdump-parser-v2/parsers/rtb.py
index 59ba9da..4006763 100644
--- a/linux-ramdump-parser-v2/parsers/rtb.py
+++ b/linux-ramdump-parser-v2/parsers/rtb.py
@@ -117,6 +117,10 @@ class RTB(RamParser):
         step_size = self.ramdump.read_u32(rtb + step_size_offset)
         total_entries = self.ramdump.read_int(rtb + nentries_offset)
         rtb_read_ptr = self.ramdump.read_word(rtb + rtb_entry_offset)
+        if step_size is None or step_size > self.ramdump.get_num_cpus():
+            print_out_str('RTB dump looks corrupt! Got step_size=%s' %
+                          hex(step_size) if step_size is not None else None)
+            return
         for i in range(0, step_size):
             rtb_out = self.ramdump.open_file('msm_rtb{0}.txt'.format(i))
             gdb_cmd = NamedTemporaryFile(mode='w+t', delete=False)
-- 
GitLab