]> git.uio.no Git - u/mrichter/AliRoot.git/commitdiff
bugfix: initialization of data array after growing it was out of array bounds
authorrichterm <richterm@f7af4fe6-9843-0410-8265-dc069ae4e863>
Fri, 19 Aug 2011 08:02:17 +0000 (08:02 +0000)
committerrichterm <richterm@f7af4fe6-9843-0410-8265-dc069ae4e863>
Fri, 19 Aug 2011 08:02:17 +0000 (08:02 +0000)
HLT/BASE/AliHLTSpacePointContainer.cxx
HLT/BASE/AliHLTSpacePointContainer.h

index ae339231272afb51e3c1ad13b2535057b0e0c7f0..023901309c9a6e10dbb5e18173d01f3cfcf95473 100644 (file)
@@ -466,12 +466,14 @@ AliHLTSpacePointContainer::AliHLTSpacePointGrid::AliHLTSpacePointGrid(float maxX
 
     fCellDimension=fDimX*fDimY*fDimZ;
     fCells=new AliHLTSpacePointCell[fCellDimension];
-    if (fDataDimension<0) fDataDimension=10000;
+    if (fDataDimension<0) fDataDimension=fgkDefaultDataSize;
     fData=new AliHLTSpacePointGrid::ValueType[fDataDimension];
     Clear();
   }
 }
 
+const int AliHLTSpacePointContainer::AliHLTSpacePointGrid::fgkDefaultDataSize=10000;
+
 AliHLTSpacePointContainer::AliHLTSpacePointGrid::~AliHLTSpacePointGrid()
 {
   // destructor
@@ -507,7 +509,7 @@ int AliHLTSpacePointContainer::AliHLTSpacePointGrid::IndexCells()
     auto_ptr<AliHLTSpacePointGrid::ValueType> newArray(new AliHLTSpacePointGrid::ValueType[offset]);
     if (newArray.get()) {
       memcpy(newArray.get(), fData, fDataDimension);
-      memset(newArray.get()+(fDataDimension-offset), 0, (fDataDimension-offset)*sizeof(AliHLTSpacePointGrid::ValueType));
+      memset(newArray.get()+fDataDimension, 0, (offset-fDataDimension)*sizeof(AliHLTSpacePointGrid::ValueType));
       delete fData;
       fData=newArray.release();
       fDataDimension=offset;
index 8f9a6705d163569431916882043d1948a83f3036..542182089bd9ec635561e0554a384f74841ffb72 100644 (file)
@@ -224,6 +224,8 @@ class AliHLTSpacePointContainer : public TObject, public AliHLTLogging
     iterator fIterator; //! iterator
     iterator fIteratorEnd; //! end marker iterator
 
+    static const int fgkDefaultDataSize; //! the default data size
+
     ClassDef(AliHLTSpacePointGrid, 0)
   };