diff options
author | Justin Clarke Casey | 2008-07-11 17:58:26 +0000 |
---|---|---|
committer | Justin Clarke Casey | 2008-07-11 17:58:26 +0000 |
commit | da68f18a6be3836e573dab7ff08e2ae7f90e2608 (patch) | |
tree | b844f5ae066c22a737b971f2b333c5d34a3e3a84 | |
parent | Patch #9140 (Mantis #1683) (diff) | |
download | opensim-SC-da68f18a6be3836e573dab7ff08e2ae7f90e2608.zip opensim-SC-da68f18a6be3836e573dab7ff08e2ae7f90e2608.tar.gz opensim-SC-da68f18a6be3836e573dab7ff08e2ae7f90e2608.tar.bz2 opensim-SC-da68f18a6be3836e573dab7ff08e2ae7f90e2608.tar.xz |
* Guard against a null point passed to RemoveClientCircuit (odd that this happens at all)
* Patch from Kurt Taylor (IBM) in http://opensimulator.org/mantis/view.php?id=1720
* Thanks Kurt!
-rw-r--r-- | OpenSim/Region/ClientStack/LindenUDP/LLUDPServer.cs | 19 |
1 files changed, 15 insertions, 4 deletions
diff --git a/OpenSim/Region/ClientStack/LindenUDP/LLUDPServer.cs b/OpenSim/Region/ClientStack/LindenUDP/LLUDPServer.cs index d705ef2..570ebe9 100644 --- a/OpenSim/Region/ClientStack/LindenUDP/LLUDPServer.cs +++ b/OpenSim/Region/ClientStack/LindenUDP/LLUDPServer.cs | |||
@@ -474,15 +474,26 @@ namespace OpenSim.Region.ClientStack.LindenUDP | |||
474 | public virtual void RemoveClientCircuit(uint circuitcode) | 474 | public virtual void RemoveClientCircuit(uint circuitcode) |
475 | { | 475 | { |
476 | EndPoint sendto = null; | 476 | EndPoint sendto = null; |
477 | if (clientCircuits_reverse.Contains(circuitcode)) { | 477 | if (clientCircuits_reverse.Contains(circuitcode)) |
478 | { | ||
478 | sendto = (EndPoint)clientCircuits_reverse[circuitcode]; | 479 | sendto = (EndPoint)clientCircuits_reverse[circuitcode]; |
479 | 480 | ||
480 | clientCircuits_reverse.Remove(circuitcode); | 481 | clientCircuits_reverse.Remove(circuitcode); |
481 | 482 | ||
482 | lock (clientCircuits) { | 483 | lock (clientCircuits) |
483 | clientCircuits.Remove(sendto); | 484 | { |
485 | if (sendto != null) | ||
486 | { | ||
487 | clientCircuits.Remove(sendto); | ||
488 | } | ||
489 | else | ||
490 | { | ||
491 | m_log.DebugFormat( | ||
492 | "[UDPSERVER]: endpoint for circuit code {0} in RemoveClientCircuit() was unexpectedly null!", circuitcode); | ||
493 | } | ||
484 | } | 494 | } |
485 | lock (proxyCircuits) { | 495 | lock (proxyCircuits) |
496 | { | ||
486 | proxyCircuits.Remove(circuitcode); | 497 | proxyCircuits.Remove(circuitcode); |
487 | } | 498 | } |
488 | } | 499 | } |