From f7fcbd60a7eb53e81f7f1b74f57849a8ea1f873f Mon Sep 17 00:00:00 2001 From: Rafal Bielski Date: Fri, 20 Aug 2021 17:48:45 +0200 Subject: [PATCH] Fix a few cases of nullptr dereference --- .../src/TrigEgammaTDToolTest.cxx | 1 + .../TrigSerializeTP/src/TrigSerTPTool.cxx | 1 + .../TrigBphysMonitoring/src/HLTXAODBphysMonTool.cxx | 1 + .../TrigT1/TrigT1CTMonitoring/src/BSMonitoring.cxx | 2 +- Trigger/TrigT1/TrigT1CTP/src/CTPSimulation.cxx | 2 +- .../TrigT1CaloFexPerf/src/EFexEMClusterTool.cxx | 2 +- .../TrigT1/TrigT1CaloMonitoring/src/JEPSimMon.cxx | 5 ++++- .../TrigT1MuonRecRoiTool/src/TrigT1RPCRecRoiTool.cxx | 12 ++++++++++++ 8 files changed, 22 insertions(+), 4 deletions(-) diff --git a/Trigger/TrigAnalysis/TrigEgammaAnalysisTools/src/TrigEgammaTDToolTest.cxx b/Trigger/TrigAnalysis/TrigEgammaAnalysisTools/src/TrigEgammaTDToolTest.cxx index ee47d297a68..1b528ce06c1 100644 --- a/Trigger/TrigAnalysis/TrigEgammaAnalysisTools/src/TrigEgammaTDToolTest.cxx +++ b/Trigger/TrigAnalysis/TrigEgammaAnalysisTools/src/TrigEgammaTDToolTest.cxx @@ -71,6 +71,7 @@ StatusCode TrigEgammaTDToolTest::execute() { const xAOD::ElectronContainer *onlElectrons = 0; if ( (evtStore()->retrieve(offElectrons,"Electrons")).isFailure() ){ ATH_MSG_ERROR("Failed to retrieve offline Electrons "); + return StatusCode::FAILURE; } ATH_MSG_INFO("Offline Electron container size " << offElectrons->size()); for(const auto eg : *offElectrons){ diff --git a/Trigger/TrigDataAccess/TrigSerializeTP/src/TrigSerTPTool.cxx b/Trigger/TrigDataAccess/TrigSerializeTP/src/TrigSerTPTool.cxx index 707e19750e0..fd074da83f5 100644 --- a/Trigger/TrigDataAccess/TrigSerializeTP/src/TrigSerTPTool.cxx +++ b/Trigger/TrigDataAccess/TrigSerializeTP/src/TrigSerTPTool.cxx @@ -108,6 +108,7 @@ void* TrigSerTPTool::convertTP( const std::string &clname, void *ptr, if( ! cnvtr ) { ATH_MSG_ERROR( "T/P Converter for transient class " << tpItr->first << " persistent class " << persName << " could not be retrieved"); + return nullptr; } // Create a persistent object: diff --git a/Trigger/TrigMonitoring/TrigBphysMonitoring/src/HLTXAODBphysMonTool.cxx b/Trigger/TrigMonitoring/TrigBphysMonitoring/src/HLTXAODBphysMonTool.cxx index 316972d80e9..39334cb4996 100644 --- a/Trigger/TrigMonitoring/TrigBphysMonitoring/src/HLTXAODBphysMonTool.cxx +++ b/Trigger/TrigMonitoring/TrigBphysMonitoring/src/HLTXAODBphysMonTool.cxx @@ -1816,6 +1816,7 @@ void HLTXAODBphysMonTool::fillTrigBphysHists(const xAOD::TrigBphys *bphysItem, c const std::string & prefix,const std::string & path, const std::string & chainName, const bool fullSetOfHists) { if (!bphysItem) { ATH_MSG_WARNING("fillTrigBphysHists null pointer provided"); + return; } ATH_MSG_DEBUG("fillTrigBphysHists for: " << bphysItem << " " << groupName << " " << prefix << " " <getRunNumber()); ATH_MSG_DEBUG( m_lumiBlocks.size() << " lumi blocks found"); for ( std::vector::const_iterator lbIt = m_lumiBlocks.begin(); diff --git a/Trigger/TrigT1/TrigT1CTP/src/CTPSimulation.cxx b/Trigger/TrigT1/TrigT1CTP/src/CTPSimulation.cxx index 1f5a641f758..f6356ed67ff 100644 --- a/Trigger/TrigT1/TrigT1CTP/src/CTPSimulation.cxx +++ b/Trigger/TrigT1/TrigT1CTP/src/CTPSimulation.cxx @@ -745,7 +745,7 @@ LVL1CTP::CTPSimulation::calculateJetMultiplicity( const TrigConf::L1Threshold & } else { ATH_MSG_ERROR( "Unexpected threshold name " << confThr.name() << ". Should start with j, jL, g, or J."); } - if(!rhk->empty()) { + if(rhk!=nullptr && !rhk->empty()) { auto jets = SG::makeHandle( *rhk, context ); if ( jets.isValid() ) { auto pt = confThr.getAttribute("pt"); diff --git a/Trigger/TrigT1/TrigT1CaloFexPerf/src/EFexEMClusterTool.cxx b/Trigger/TrigT1/TrigT1CaloFexPerf/src/EFexEMClusterTool.cxx index 134270a6582..567fdb75175 100644 --- a/Trigger/TrigT1/TrigT1CaloFexPerf/src/EFexEMClusterTool.cxx +++ b/Trigger/TrigT1/TrigT1CaloFexPerf/src/EFexEMClusterTool.cxx @@ -339,7 +339,7 @@ LVL1::EFexEMClusterTool::addOnce(const CaloCell* inputCell, std::vectorID() == oCell->ID()) alreadyThere=true; + else if (inputCell->ID() == oCell->ID()) alreadyThere=true; } if (!alreadyThere) outputVector.push_back(inputCell); } diff --git a/Trigger/TrigT1/TrigT1CaloMonitoring/src/JEPSimMon.cxx b/Trigger/TrigT1/TrigT1CaloMonitoring/src/JEPSimMon.cxx index b5a94290bf6..d47fb4f3a16 100644 --- a/Trigger/TrigT1/TrigT1CaloMonitoring/src/JEPSimMon.cxx +++ b/Trigger/TrigT1/TrigT1CaloMonitoring/src/JEPSimMon.cxx @@ -695,7 +695,10 @@ StatusCode JEPSimMon::fillHistograms() { msg(MSG::DEBUG) << "No DAQ CMX RoIs found" << endmsg; } - cmxRoiTES = *cmxRoiTEScontainer->begin(); + else + { + cmxRoiTES = *cmxRoiTEScontainer->begin(); + } // Retrieve JEM Et Sums from SG const xAOD::JEMEtSumsContainer *jemEtSumsTES = 0; diff --git a/Trigger/TrigT1/TrigT1MuonRecRoiTool/src/TrigT1RPCRecRoiTool.cxx b/Trigger/TrigT1/TrigT1MuonRecRoiTool/src/TrigT1RPCRecRoiTool.cxx index 2400ec8e0dd..d5ca20871b3 100644 --- a/Trigger/TrigT1/TrigT1MuonRecRoiTool/src/TrigT1RPCRecRoiTool.cxx +++ b/Trigger/TrigT1/TrigT1MuonRecRoiTool/src/TrigT1RPCRecRoiTool.cxx @@ -45,6 +45,10 @@ namespace LVL1 { SG::ReadCondHandle rpcReadHandle{m_rpcKey}; const RpcCablingCondData* rpcCab{*rpcReadHandle}; + if (rpcCab==nullptr){ + ATH_MSG_ERROR("Null pointer to the read RpcCablingCondData conditions object."); + return data; + } if(rpcCab->give_RoI_borders_id(data.side(), data.sector(), data.roi(), EtaLowBorder_id, EtaHighBorder_id, @@ -174,6 +178,10 @@ namespace LVL1 { SG::ReadCondHandle rpcReadHandle{m_rpcKey}; const RpcCablingCondData* rpcCab{*rpcReadHandle}; + if (rpcCab==nullptr){ + ATH_MSG_ERROR("Null pointer to the read RpcCablingCondData conditions object."); + return false; + } if(!rpcCab->give_LowPt_borders_id(data.side(), data.sector(), data.roi(), EtaLowBorder_id, EtaHighBorder_id, @@ -220,6 +228,10 @@ namespace LVL1 { SG::ReadCondHandle rpcReadHandle{m_rpcKey}; const RpcCablingCondData* rpcCab{*rpcReadHandle}; + if (rpcCab==nullptr){ + ATH_MSG_ERROR("Null pointer to the read RpcCablingCondData conditions object."); + return false; + } if(!rpcCab->give_HighPt_borders_id(data.side(), data.sector(), data.roi(), EtaLowBorder_id, EtaHighBorder_id, -- GitLab