diff options
author | dahlia | 2013-01-10 20:21:18 -0800 |
---|---|---|
committer | dahlia | 2013-01-10 20:21:18 -0800 |
commit | 72cc94cfbc16515515d33e4f130d3ee5f2802866 (patch) | |
tree | 2531fe6b3ce8d08668e5e4d5684456b23239642d /OpenSim/Region | |
parent | Implement a workaround solution for saving manual script state changes by the... (diff) | |
download | opensim-SC-72cc94cfbc16515515d33e4f130d3ee5f2802866.zip opensim-SC-72cc94cfbc16515515d33e4f130d3ee5f2802866.tar.gz opensim-SC-72cc94cfbc16515515d33e4f130d3ee5f2802866.tar.bz2 opensim-SC-72cc94cfbc16515515d33e4f130d3ee5f2802866.tar.xz |
add some sanity checking to HandleAgentRequestSit handler
Diffstat (limited to 'OpenSim/Region')
-rw-r--r-- | OpenSim/Region/ClientStack/Linden/UDP/LLClientView.cs | 14 |
1 files changed, 12 insertions, 2 deletions
diff --git a/OpenSim/Region/ClientStack/Linden/UDP/LLClientView.cs b/OpenSim/Region/ClientStack/Linden/UDP/LLClientView.cs index 504df40..a8517e6 100644 --- a/OpenSim/Region/ClientStack/Linden/UDP/LLClientView.cs +++ b/OpenSim/Region/ClientStack/Linden/UDP/LLClientView.cs | |||
@@ -6428,8 +6428,18 @@ namespace OpenSim.Region.ClientStack.LindenUDP | |||
6428 | 6428 | ||
6429 | AgentRequestSit handlerAgentRequestSit = OnAgentRequestSit; | 6429 | AgentRequestSit handlerAgentRequestSit = OnAgentRequestSit; |
6430 | if (handlerAgentRequestSit != null) | 6430 | if (handlerAgentRequestSit != null) |
6431 | handlerAgentRequestSit(this, agentRequestSit.AgentData.AgentID, | 6431 | if (!(agentRequestSit.AgentData == null |
6432 | agentRequestSit.TargetObject.TargetID, agentRequestSit.TargetObject.Offset); | 6432 | || agentRequestSit.TargetObject == null |
6433 | || agentRequestSit.TargetObject.TargetID == null | ||
6434 | || agentRequestSit.TargetObject.Offset == null)) | ||
6435 | { | ||
6436 | var sp = m_scene.GetScenePresence(agentRequestSit.AgentData.AgentID); | ||
6437 | if (sp == null || sp.ParentID != 0) // ignore packet if agent is already sitting | ||
6438 | return true; | ||
6439 | |||
6440 | handlerAgentRequestSit(this, agentRequestSit.AgentData.AgentID, | ||
6441 | agentRequestSit.TargetObject.TargetID, agentRequestSit.TargetObject.Offset); | ||
6442 | } | ||
6433 | } | 6443 | } |
6434 | return true; | 6444 | return true; |
6435 | } | 6445 | } |