aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/linden/indra/newview/llhudeffectpointat.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'linden/indra/newview/llhudeffectpointat.cpp')
-rw-r--r--linden/indra/newview/llhudeffectpointat.cpp8
1 files changed, 8 insertions, 0 deletions
diff --git a/linden/indra/newview/llhudeffectpointat.cpp b/linden/indra/newview/llhudeffectpointat.cpp
index 88521df..2b82748 100644
--- a/linden/indra/newview/llhudeffectpointat.cpp
+++ b/linden/indra/newview/llhudeffectpointat.cpp
@@ -152,6 +152,9 @@ void LLHUDEffectPointAt::unpackData(LLMessageSystem *mesgsys, S32 blocknum)
152 mesgsys->getUUIDFast(_PREHASH_Effect, _PREHASH_ID, dataId, blocknum); 152 mesgsys->getUUIDFast(_PREHASH_Effect, _PREHASH_ID, dataId, blocknum);
153 153
154 // ignore messages from ourselves 154 // ignore messages from ourselves
155 //
156 //ok, this filters if the message is from ourselves, but not the message content, esp not
157 // the "source object" which could be a faked "ourselves"
155 if (!gAgent.mPointAt.isNull() && dataId == gAgent.mPointAt->getID()) 158 if (!gAgent.mPointAt.isNull() && dataId == gAgent.mPointAt->getID())
156 { 159 {
157 return; 160 return;
@@ -173,6 +176,11 @@ void LLHUDEffectPointAt::unpackData(LLMessageSystem *mesgsys, S32 blocknum)
173 LLViewerObject *objp = gObjectList.findObject(source_id); 176 LLViewerObject *objp = gObjectList.findObject(source_id);
174 if (objp && objp->isAvatar()) 177 if (objp && objp->isAvatar())
175 { 178 {
179 if (source_id == gAgent.getID()) // faked "ourselves", isn't it?
180 {
181 LL_DEBUGS("Messaging") << "corrupted source id. Someone might be trying to grief us with the point at animation" << LL_ENDL;
182 return;
183 }
176 setSourceObject(objp); 184 setSourceObject(objp);
177 } 185 }
178 else 186 else