From: richterm Date: Fri, 19 Aug 2011 08:02:17 +0000 (+0000) Subject: bugfix: initialization of data array after growing it was out of array bounds X-Git-Url: http://git.uio.no/git/?a=commitdiff_plain;h=fc7ea273753c1c89003d9ebe113c00737f06cf6a;p=u%2Fmrichter%2FAliRoot.git bugfix: initialization of data array after growing it was out of array bounds --- diff --git a/HLT/BASE/AliHLTSpacePointContainer.cxx b/HLT/BASE/AliHLTSpacePointContainer.cxx index ae339231272..023901309c9 100644 --- a/HLT/BASE/AliHLTSpacePointContainer.cxx +++ b/HLT/BASE/AliHLTSpacePointContainer.cxx @@ -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 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; diff --git a/HLT/BASE/AliHLTSpacePointContainer.h b/HLT/BASE/AliHLTSpacePointContainer.h index 8f9a6705d16..542182089bd 100644 --- a/HLT/BASE/AliHLTSpacePointContainer.h +++ b/HLT/BASE/AliHLTSpacePointContainer.h @@ -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) };