diff options
| author | Mnikolenko Productengine <mnikolenko@productengine.com> | 2017-08-08 11:37:04 +0300 | 
|---|---|---|
| committer | Mnikolenko Productengine <mnikolenko@productengine.com> | 2017-08-08 11:37:04 +0300 | 
| commit | 6302b0a9c71c5d83d3d7e76cb01c2c401bac7afb (patch) | |
| tree | c07baef2c533125c4226e2a5e4b11cd93ca15fd6 | |
| parent | c3097276be24e3aacd4791b95ad38fe01b8b6d97 (diff) | |
MAINT-7610 deadobject list increments incorrectly leading to possible memory overwrite
| -rw-r--r-- | indra/newview/llviewerobjectlist.cpp | 7 | 
1 files changed, 6 insertions, 1 deletions
diff --git a/indra/newview/llviewerobjectlist.cpp b/indra/newview/llviewerobjectlist.cpp index 8f98d66c0c..3c83e3a006 100644 --- a/indra/newview/llviewerobjectlist.cpp +++ b/indra/newview/llviewerobjectlist.cpp @@ -1247,9 +1247,11 @@ void LLViewerObjectList::clearDebugText()  void LLViewerObjectList::cleanupReferences(LLViewerObject *objectp)  { +	bool new_dead_object = true;  	if (mDeadObjects.find(objectp->mID) != mDeadObjects.end())  	{  		LL_INFOS() << "Object " << objectp->mID << " already on dead list!" << LL_ENDL;	 +		new_dead_object = false;  	}  	else  	{ @@ -1286,7 +1288,10 @@ void LLViewerObjectList::cleanupReferences(LLViewerObject *objectp)  	// Also, not cleaned up  	removeDrawable(objectp->mDrawable); -	mNumDeadObjects++; +	if(new_dead_object) +	{ +		mNumDeadObjects++; +	}  }  static LLTrace::BlockTimerStatHandle FTM_REMOVE_DRAWABLE("Remove Drawable");  | 
