From 88517a6ce1901c8146343a15c63374f6ab4cae32 Mon Sep 17 00:00:00 2001 From: Boris Grozev <boris@jitsi.org> Date: Fri, 17 Jan 2014 15:21:24 +0100 Subject: [PATCH] Fixes a regression in which RawPackets can be returned for re-use prematurely --- src/org/jitsi/impl/neomedia/RTPConnectorOutputStream.java | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/org/jitsi/impl/neomedia/RTPConnectorOutputStream.java b/src/org/jitsi/impl/neomedia/RTPConnectorOutputStream.java index 96fd8b3b..078c3992 100755 --- a/src/org/jitsi/impl/neomedia/RTPConnectorOutputStream.java +++ b/src/org/jitsi/impl/neomedia/RTPConnectorOutputStream.java @@ -272,7 +272,10 @@ protected abstract void doLogPacket( private boolean send(RawPacket packet) { if(!isSocketValid()) + { + rawPacketPool.offer(packet); return false; + } numberOfPackets++; for (InetSocketAddress target : targets) @@ -377,6 +380,7 @@ public int write(byte[] buffer, int offset, int length) { //skip sending the rest, but return them to the pool fail = true; + continue; } } else @@ -385,7 +389,7 @@ public int write(byte[] buffer, int offset, int length) } } - if (pkt != null) + if (pkt != null && fail) //if !fail, send() will have returned it rawPacketPool.offer(pkt); } -- GitLab