Skip to content
Snippets Groups Projects
Commit d544c5cf authored by Osvaldo Banuelos's avatar Osvaldo Banuelos
Browse files

lrdp-v2: cpr3_info: sanity check CPR controller pointer

Check the validity of the CPR controller pointer to make sure
parsing is attempted only on actual CPR controller structures.

CRs-Fixed: 1085156
Change-Id: Ie0970cd5458d169768f4c065cc5ee79e8ad93160
parent 86d67625
No related branches found
No related tags found
No related merge requests found
...@@ -430,9 +430,19 @@ class CPR3Info(RamParser): ...@@ -430,9 +430,19 @@ class CPR3Info(RamParser):
else: else:
cpr_mode = "closed-loop" cpr_mode = "closed-loop"
tmp = "" thread_addr = self.ramdump.read_word(
if cpr_controller_name is None: ctrl_addr +
self.ramdump.field_offset(
'struct cpr3_controller', 'thread'))
if thread_addr is None:
return return
thread_ctrl_addr = self.ramdump.read_word(
thread_addr +
self.ramdump.field_offset('struct cpr3_thread', 'ctrl'))
if cpr_controller_name is None or thread_ctrl_addr != ctrl_addr:
return
tmp = ""
tmp += "=" * 80 + "\n" tmp += "=" * 80 + "\n"
tmp += 'CPR3 controller state: %s\n' % cpr_controller_name tmp += 'CPR3 controller state: %s\n' % cpr_controller_name
tmp += "=" * 80 + "\n" tmp += "=" * 80 + "\n"
...@@ -464,10 +474,6 @@ class CPR3Info(RamParser): ...@@ -464,10 +474,6 @@ class CPR3Info(RamParser):
self.output.append("\nCPR aggregated voltages:\n") self.output.append("\nCPR aggregated voltages:\n")
self.dump_cpr3_corner_info(aggr_corner_addr, 0, 0, 0) self.dump_cpr3_corner_info(aggr_corner_addr, 0, 0, 0)
thread_addr = self.ramdump.read_word(
ctrl_addr +
self.ramdump.field_offset(
'struct cpr3_controller', 'thread'))
thread_count = self.ramdump.read_int( thread_count = self.ramdump.read_int(
ctrl_addr + ctrl_addr +
self.ramdump.field_offset( self.ramdump.field_offset(
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment