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 /indra/newview | |
parent | c3097276be24e3aacd4791b95ad38fe01b8b6d97 (diff) |
MAINT-7610 deadobject list increments incorrectly leading to possible memory overwrite
Diffstat (limited to 'indra/newview')
-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"); |