From 659339e1e01fdc395ebdfeb63924ec0db4ac6f8c Mon Sep 17 00:00:00 2001
From: Goetz Gaycken <goetz.gaycken@cern.ch>
Date: Thu, 22 Mar 2018 19:18:49 +0100
Subject: [PATCH] Fix uninitialized member.

The maximum number of nodes per layer was not initialized in all
constructors. This addresses coverity issues 118544 and 118543.
---
 .../TrkNeuralNetworkUtils/src/TTrainedNetwork.cxx  | 14 ++++++++++++--
 1 file changed, 12 insertions(+), 2 deletions(-)

diff --git a/Tracking/TrkUtilityPackages/TrkNeuralNetworkUtils/src/TTrainedNetwork.cxx b/Tracking/TrkUtilityPackages/TrkNeuralNetworkUtils/src/TTrainedNetwork.cxx
index 106a1d78978..6fe5aa83744 100644
--- a/Tracking/TrkUtilityPackages/TrkNeuralNetworkUtils/src/TTrainedNetwork.cxx
+++ b/Tracking/TrkUtilityPackages/TrkNeuralNetworkUtils/src/TTrainedNetwork.cxx
@@ -23,7 +23,7 @@ TTrainedNetwork::TTrainedNetwork()
   mLinearOutput=false;
   mNormalizeOutput=false;
   maxExpValue=log(std::numeric_limits<double>::max());
-  
+  m_bufferSizeMax=0;
 }
 
 TTrainedNetwork::TTrainedNetwork(Int_t nInput, 
@@ -49,7 +49,17 @@ TTrainedNetwork::TTrainedNetwork(Int_t nInput,
   mLinearOutput = linearOutput;
   mNormalizeOutput = normalizeOutput;
   maxExpValue = log(std::numeric_limits<double>::max());
-  
+
+  int nlayer_max(mnOutput);
+  for (unsigned i = 0; i < mnHiddenLayerSize.size(); ++i) {
+     nlayer_max = std::max(nlayer_max, mnHiddenLayerSize[i]);
+  }
+  std::vector<TVectorD*>::const_iterator hidden_layer_threshold_vector_end = mThresholdVectors.end();
+  hidden_layer_threshold_vector_end--;
+  for (std::vector<TVectorD*>::const_iterator tr_itr= mThresholdVectors.begin(); tr_itr != hidden_layer_threshold_vector_end; tr_itr++){
+     nlayer_max = std::max(nlayer_max, (*tr_itr)->GetNrows());
+  }
+  m_bufferSizeMax=nlayer_max;
 }
 
 void TTrainedNetwork::setOffsets(const std::vector<double>& offsets) 
-- 
GitLab