summaryrefslogtreecommitdiffstats
path: root/src/usr/pnor/pnorrp.C
diff options
context:
space:
mode:
Diffstat (limited to 'src/usr/pnor/pnorrp.C')
-rw-r--r--src/usr/pnor/pnorrp.C28
1 files changed, 27 insertions, 1 deletions
diff --git a/src/usr/pnor/pnorrp.C b/src/usr/pnor/pnorrp.C
index a874d3735..f596401e9 100644
--- a/src/usr/pnor/pnorrp.C
+++ b/src/usr/pnor/pnorrp.C
@@ -528,7 +528,33 @@ errlHndl_t PnorRP::getSectionInfo( PNOR::SectionId i_section,
break;
}
payloadTextSize = l_conHdr.payloadTextSize();
- assert(payloadTextSize > 0,"Non-zero payload text size expected.");
+ if ( payloadTextSize <= 0)
+ {
+ TRACFCOMP(g_trac_pnor, ERR_MRK"PnorRP::getSectionInfo: non-zero protected payload text size expected for section %s",
+ o_info.name);
+
+ /*@
+ * @errortype
+ * @moduleid PNOR::MOD_PNORRP_GETSECTIONINFO
+ * @reasoncode PNOR::RC_SECTION_SIZE_IS_ZERO
+ * @userdata1 PNOR section
+ * @userdata2 Section's secure flag
+ * @devdesc Protected Payload Size is 0
+ * @custdesc Platform security problem detected
+ */
+ l_errhdl = new ERRORLOG::ErrlEntry(
+ ERRORLOG::ERRL_SEV_UNRECOVERABLE,
+ PNOR::MOD_PNORRP_GETSECTIONINFO,
+ PNOR::RC_SECTION_SIZE_IS_ZERO,
+ i_section,
+ o_info.secure,
+ true /*Add HB SW Callout*/);
+ l_errhdl->collectTrace(PNOR_COMP_NAME);
+ l_errhdl->collectTrace(SECURE_COMP_NAME);
+ // set the return section to our invalid data
+ id = PNOR::INVALID_SECTION;
+ break;
+ }
// skip secure header for secure sections at this point in time
o_info.vaddr += PAGESIZE;
OpenPOWER on IntegriCloud