diff --git a/OpenSim/Region/ClientStack/Linden/UDP/LLUDPServer.cs b/OpenSim/Region/ClientStack/Linden/UDP/LLUDPServer.cs index 1d7f0af960..36a938eb99 100755 --- a/OpenSim/Region/ClientStack/Linden/UDP/LLUDPServer.cs +++ b/OpenSim/Region/ClientStack/Linden/UDP/LLUDPServer.cs @@ -1241,15 +1241,17 @@ namespace OpenSim.Region.ClientStack.LindenUDP return; // Drop undersized packet } + int bufferDataptr = buffer.Data[5] + 6; int headerLen = 7; - if (buffer.Data[6] == 0xFF) + if (buffer.Data[bufferDataptr] == 0xFF) { - if (buffer.Data[7] == 0xFF) + if (buffer.Data[bufferDataptr + 1] == 0xFF) headerLen = 10; else headerLen = 8; } + headerLen += buffer.Data[5]; if (bufferLen < headerLen) { // m_log.WarnFormat( @@ -1272,8 +1274,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP zerodecodebuffer = zerodecodebufferholder.Data; } - int packetEnd = bufferLen - 1; - packet = Packet.BuildPacket(buffer.Data, ref packetEnd, zerodecodebuffer); + packet = Packet.BuildPacket(buffer.Data, ref bufferLen, zerodecodebuffer); if(zerodecodebufferholder != null) FreeUDPBuffer(zerodecodebufferholder); } diff --git a/bin/OpenMetaverse.Rendering.Meshmerizer.dll b/bin/OpenMetaverse.Rendering.Meshmerizer.dll index 00f321b070..66ac3d5336 100755 Binary files a/bin/OpenMetaverse.Rendering.Meshmerizer.dll and b/bin/OpenMetaverse.Rendering.Meshmerizer.dll differ diff --git a/bin/OpenMetaverse.StructuredData.dll b/bin/OpenMetaverse.StructuredData.dll index c0061e0761..797ab26a2c 100755 Binary files a/bin/OpenMetaverse.StructuredData.dll and b/bin/OpenMetaverse.StructuredData.dll differ diff --git a/bin/OpenMetaverse.dll b/bin/OpenMetaverse.dll index 246d6f0ce2..bda08a5690 100755 Binary files a/bin/OpenMetaverse.dll and b/bin/OpenMetaverse.dll differ diff --git a/bin/OpenMetaverseTypes.dll b/bin/OpenMetaverseTypes.dll index 37ebcfa8fd..373cf99f1e 100755 Binary files a/bin/OpenMetaverseTypes.dll and b/bin/OpenMetaverseTypes.dll differ