summaryrefslogtreecommitdiffstats
path: root/src/usr/initservice
diff options
context:
space:
mode:
authorGlenn Miles <milesg@ibm.com>2019-10-11 13:52:14 -0500
committerNicholas E Bofferding <bofferdn@us.ibm.com>2019-10-16 08:21:11 -0500
commit68ba813f29145980aae29899fc4fff7a9b476a9d (patch)
tree9c660d329602e97415f389ae09e424e86f10acee /src/usr/initservice
parent98bf4ecbde2d327d0c7707cbe96654486bcfcc50 (diff)
downloadtalos-hostboot-68ba813f29145980aae29899fc4fff7a9b476a9d.tar.gz
talos-hostboot-68ba813f29145980aae29899fc4fff7a9b476a9d.zip
Fix invalid use of vector iterator
Once an element of a vector is erased using an iterator, that iterator should be considered invalid and not used. The accepted practice is to update the iterator with the return value of the erase method and not to increment the iterator. CQ: SW465848 Change-Id: If6ec7887d8c2b6c6ad44a9608c474b9c118bd117 Reviewed-on: http://rchgit01.rchland.ibm.com/gerrit1/85220 Reviewed-by: Zachary Clark <zach@ibm.com> Reviewed-by: Michael Baiocchi <mbaiocch@us.ibm.com> Reviewed-by: Daniel M Crowell <dcrowell@us.ibm.com> Tested-by: Jenkins Server <pfd-jenkins+hostboot@us.ibm.com> Tested-by: Jenkins OP Build CI <op-jenkins+hostboot@us.ibm.com> Tested-by: Jenkins OP HW <op-hw-jenkins+hostboot@us.ibm.com> Tested-by: FSP CI Jenkins <fsp-CI-jenkins+hostboot@us.ibm.com> Reviewed-by: Nicholas E Bofferding <bofferdn@us.ibm.com>
Diffstat (limited to 'src/usr/initservice')
-rw-r--r--src/usr/initservice/baseinitsvc/initservice.C9
1 files changed, 6 insertions, 3 deletions
diff --git a/src/usr/initservice/baseinitsvc/initservice.C b/src/usr/initservice/baseinitsvc/initservice.C
index d06b36f6a..acd70bb42 100644
--- a/src/usr/initservice/baseinitsvc/initservice.C
+++ b/src/usr/initservice/baseinitsvc/initservice.C
@@ -1060,8 +1060,7 @@ bool InitService::unregisterShutdownEvent(msg_q_t i_msgQ)
{
for(EventRegistry_t::iterator r = iv_regMsgQ.begin();
- r != iv_regMsgQ.end();
- ++r)
+ r != iv_regMsgQ.end();)
{
// erase all instances
if(r->msgQ == i_msgQ)
@@ -1072,7 +1071,11 @@ bool InitService::unregisterShutdownEvent(msg_q_t i_msgQ)
r->compID, r->msgQ, r->msgType, r->msgPriority);
result = true;
- iv_regMsgQ.erase(r);
+ r = iv_regMsgQ.erase(r);
+ }
+ else
+ {
+ ++r;
}
}
}
OpenPOWER on IntegriCloud