From 7325d76cd20412dff782f9c5c8707cc92bf17d1c Mon Sep 17 00:00:00 2001 From: scott snyder <snyder@bnl.gov> Date: Sun, 8 Nov 2020 05:25:53 +0100 Subject: [PATCH] BTagging: Fix null pointer dereferences. Fix a couple potential null pointer references caught by the undefined behavior sanitizer. --- .../JetTagAlgs/BTagging/src/BTagLightSecVertexing.cxx | 6 +++--- .../JetTagAlgs/BTagging/src/JetSecVertexingAlg.cxx | 6 +++--- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/PhysicsAnalysis/JetTagging/JetTagAlgs/BTagging/src/BTagLightSecVertexing.cxx b/PhysicsAnalysis/JetTagging/JetTagAlgs/BTagging/src/BTagLightSecVertexing.cxx index 9892d62b156..348d906e1d9 100644 --- a/PhysicsAnalysis/JetTagging/JetTagAlgs/BTagging/src/BTagLightSecVertexing.cxx +++ b/PhysicsAnalysis/JetTagging/JetTagAlgs/BTagging/src/BTagLightSecVertexing.cxx @@ -375,7 +375,7 @@ namespace Analysis { for (xAOD::JetContainer::const_iterator jetIter = jetContainer->begin(); jetIter != jetContainer->end(); ++jetIter, ++btagIter, ++infoSVIter) { const xAOD::Jet& jetToTag = **jetIter; - const Trk::VxSecVertexInfo& myVertexInfo = **infoSVIter; + const Trk::VxSecVertexInfo* myVertexInfo = *infoSVIter; const xAOD::TrackParticleContainer* theTrackParticleContainer = nullptr; @@ -422,7 +422,7 @@ namespace Analysis { } if (basename == "SV1") { - const Trk::VxSecVKalVertexInfo* myVertexInfoVKal = dynamic_cast<const Trk::VxSecVKalVertexInfo*>(&myVertexInfo); + const Trk::VxSecVKalVertexInfo* myVertexInfoVKal = dynamic_cast<const Trk::VxSecVKalVertexInfo*>(myVertexInfo); ATH_MSG_DEBUG("#BTAG# Found valid VKalVertexInfo information: " << infoCont.key()); StatusCode sc = fillVkalVariables(**jetIter, *btagIter, myVertexInfoVKal, theTrackParticleContainer, basename); if(sc.isFailure()){ @@ -430,7 +430,7 @@ namespace Analysis { return sc; } } else if (basename == "JetFitter") { - const Trk::VxJetFitterVertexInfo* myVertexInfoJetFitter = dynamic_cast<const Trk::VxJetFitterVertexInfo*>(&myVertexInfo); + const Trk::VxJetFitterVertexInfo* myVertexInfoJetFitter = dynamic_cast<const Trk::VxJetFitterVertexInfo*>(myVertexInfo); ATH_MSG_DEBUG("#BTAG# Found valid VxJetFitterVertexInfo information: " << infoCont.key()); StatusCode sc = fillJFVariables(jetToTag, *btagIter, myVertexInfoJetFitter, theTrackParticleContainer, basename); if(sc.isFailure()){ diff --git a/PhysicsAnalysis/JetTagging/JetTagAlgs/BTagging/src/JetSecVertexingAlg.cxx b/PhysicsAnalysis/JetTagging/JetTagAlgs/BTagging/src/JetSecVertexingAlg.cxx index 486a60655e3..4a09c4f8d90 100644 --- a/PhysicsAnalysis/JetTagging/JetTagAlgs/BTagging/src/JetSecVertexingAlg.cxx +++ b/PhysicsAnalysis/JetTagging/JetTagAlgs/BTagging/src/JetSecVertexingAlg.cxx @@ -177,7 +177,7 @@ namespace Analysis { Trk::VxSecVertexInfoContainer::const_iterator infoSVIter = h_VxSecVertexInfoName->begin(); for (xAOD::JetContainer::const_iterator jetIter = h_JetCollectionName->begin(); jetIter != h_JetCollectionName->end(); ++jetIter, ++infoSVIter) { const xAOD::Jet& jetToTag = **jetIter; - const Trk::VxSecVertexInfo& myVertexInfo = **infoSVIter; + const Trk::VxSecVertexInfo* myVertexInfo = *infoSVIter; const xAOD::TrackParticleContainer* theTrackParticleContainer = 0; //Get it from decor jet @@ -205,7 +205,7 @@ namespace Analysis { inputIParticles.push_back(*inputTrackParticle); } - if (const Trk::VxSecVKalVertexInfo* myVertexInfoVKal = dynamic_cast<const Trk::VxSecVKalVertexInfo*>(&myVertexInfo)) { + if (const Trk::VxSecVKalVertexInfo* myVertexInfoVKal = dynamic_cast<const Trk::VxSecVKalVertexInfo*>(myVertexInfo)) { ATH_MSG_DEBUG("#BTAG# Found VKalVertexInfo information"); if(basename.find("MSV") == 0){ StatusCode sc = m_MSVvarFactory->createMSVContainer(jetToTag, myVertexInfoVKal, &(*h_BTagSVCollectionName), PrimaryVtx); @@ -224,7 +224,7 @@ namespace Analysis { return sc; } } - } else if (const Trk::VxJetFitterVertexInfo* myVertexInfoJetFitter = dynamic_cast<const Trk::VxJetFitterVertexInfo*>(&myVertexInfo)) { + } else if (const Trk::VxJetFitterVertexInfo* myVertexInfoJetFitter = dynamic_cast<const Trk::VxJetFitterVertexInfo*>(myVertexInfo)) { ATH_MSG_DEBUG("#BTAG# Found VxJetFitterVertexInfo information"); SG::WriteDecorHandle<xAOD::JetContainer,std::vector<ElementLink< xAOD::BTagVertexContainer> > > h_jetSVLinkName(m_jetSVLinkName); std::vector< ElementLink< xAOD::BTagVertexContainer > > JFVtxLinks; -- GitLab