Ticket #16 (closed Bug: Deferred)
RTMPT - limit on the size of strings
| Reported by: | zyoav | Owned by: | joachim |
|---|---|---|---|
| Priority: | Major | Component: | Streaming and Networking |
| Version: | Keywords: | ||
| Cc: |
Description
You don't check that the buf is big enough here:
public String readString() {
int len = buf.getInt();
// shift by one bit ?
// is it a reference ? if not continue
int limit = buf.limit();
final java.nio.ByteBuffer strBuf = buf.buf();
strBuf.limit (strBuf.position() + len);
as a result I get:
[ERROR] 15 btpool0-3:( org.red5.server.net.rtmp.codec.RTMPProtocolDecoder.error ) Error in packet at 2580
java.lang.IllegalArgumentException
at java.nio.Buffer.limit (Buffer.java:249)
at org.red5.io.amf.Input.readString (Input.java:193)
at org.red5.io.object.Deserializer.deserialize(Deserializer.java:77)
at org.red5.server.net.rtmp.codec.RTMPProtocolDecoder.decodeNotifyOrInvoke (RTMPProtocolDecoder.java:563)
at org.red5.server.net.rtmp.codec.RTMPProtocolDecoder.decodeInvoke (RTMPProtocolDecoder.java:498)
at org.red5.server.net.rtmp.codec.RTMPProtocolDecoder.decodeMessage(RTMPProtocolDecoder.java :354)
at org.red5.server.net.rtmp.codec.RTMPProtocolDecoder.decodePacket(RTMPProtocolDecoder.java :280)
at org.red5.server.net.rtmp.codec.RTMPProtocolDecoder.decode(RTMPProtocolDecoder.java:123)
at org.red5.server.net.rtmp.codec.RTMPProtocolDecoder.decodeBuffer (RTMPProtocolDecoder.java:92)
at org.red5.server.net.rtmpt.RTMPTConnection.decode (RTMPTConnection.java:174)
at org.red5.server.net.servlet.RTMPTServlet.handleSend(RTMPTServlet.java:320)
at org.red5.server.net.servlet.RTMPTServlet.service (RTMPTServlet.java:408)
at javax.servlet.http.HttpServlet.service (HttpServlet.java:856)
at org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:445)
at org.mortbay.jetty.servlet.ServletHandler.handle (ServletHandler.java:356)
at org.mortbay.jetty.handler.ContextHandler.handle (ContextHandler.java:627)
at org.mortbay.jetty.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:149)
at org.mortbay.jetty.handler.HandlerCollection.handle (HandlerCollection.java:123)
at org.mortbay.jetty.handler.HandlerWrapper.handle (HandlerWrapper.java:141)
at org.mortbay.jetty.Server.handle(Server.java:269)
at org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java :430)
at org.mortbay.jetty.HttpConnection$RequestHandler.content (HttpConnection.java:701)
at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:617)
at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java :199)
at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java :339)
at org.mortbay.jetty.nio.HttpChannelEndPoint.run(HttpChannelEndPoint.java:270)
at org.mortbay.thread.BoundedThreadPool$PoolThread.run( BoundedThreadPool.java:475)
I also have another bug for you in RTMPT:
[WARN] 48132063 btpool0-2 - Acceptor0 SelectChannelConnector @ 213.8.195.150:80:( org.mortbay.log.invoke0 ) dispatch failed! threads=10 idle=0
[WARN] 48192063 btpool0-2 - Acceptor0 SelectChannelConnector @ 213.8.195.150:80:( org.mortbay.log.invoke0 ) dispatch failed! threads=10 idle=0
[WARN] 48192063 btpool0-1 - Acceptor1 SelectChannelConnector @ 213.8.195.150:80 :( org.mortbay.log.invoke0 ) dispatch failed! threads=10 idle=0
[WARN] 48252063 btpool0-2 - Acceptor0 SelectChannelConnector @ 213.8.195.150:80 :( org.mortbay.log.invoke0 ) dispatch failed! threads=10 idle=0
[WARN] 48252063 btpool0-1 - Acceptor1 SelectChannelConnector @ 213.8.195.150:80:( org.mortbay.log.invoke0 ) dispatch failed! threads=10 idle=0
[WARN] 48312063 btpool0-2 - Acceptor0 SelectChannelConnector @ 213.8.195.150:80:( org.mortbay.log.invoke0 ) dispatch failed! threads=10 idle=0
[WARN] 48312063 btpool0-1 - Acceptor1 SelectChannelConnector @ 213.8.195.150:80 :( org.mortbay.log.invoke0 ) dispatch failed! threads=10 idle=0
[WARN] 48372063 btpool0-2 - Acceptor0 SelectChannelConnector @ 213.8.195.150:80 :( org.mortbay.log.invoke0 ) dispatch failed! threads=10 idle=0
[WARN] 48372063 btpool0-1 - Acceptor1 SelectChannelConnector @ 213.8.195.150:80:( org.mortbay.log.invoke0 ) dispatch failed! threads=10 idle=0
[WARN] 48432063 btpool0-1 - Acceptor1 SelectChannelConnector @ 213.8.195.150:80:( org.mortbay.log.invoke0 ) dispatch failed! threads=10 idle=0
[WARN] 48462094 btpool0-2 - Acceptor0 SelectChannelConnector @ 213.8.195.150:80 :( org.mortbay.log.invoke0 ) dispatch failed! threads=10 idle=0
[WARN] 48522094 btpool0-1 - Acceptor1 SelectChannelConnector @ 213.8.195.150:80 :( org.mortbay.log.invoke0 ) dispatch failed! threads=10 idle=0
[WARN] 48522094 btpool0-2 - Acceptor0 SelectChannelConnector @ 213.8.195.150:80:( org.mortbay.log.invoke0 ) dispatch failed! threads=10 idle=0
[WARN] 48582094 btpool0-1 - Acceptor1 SelectChannelConnector @ 213.8.195.150:80:( org.mortbay.log.invoke0 ) dispatch failed! threads=10 idle=0
[WARN] 48601657 btpool0-2 - Acceptor0 SelectChannelConnector @ 213.8.195.150:80 :( org.mortbay.log.invoke0 ) dispatch failed! threads=10 idle=0
[WARN] 48661657 btpool0-2 - Acceptor0 SelectChannelConnector @ 213.8.195.150:80 :( org.mortbay.log.invoke0 ) dispatch failed! threads=10 idle=0
[WARN] 48661657 btpool0-1 - Acceptor1 SelectChannelConnector @ 213.8.195.150:80:( org.mortbay.log.invoke0 ) dispatch failed! threads=10 idle=0
[WARN] 48721657 btpool0-2 - Acceptor0 SelectChannelConnector @ 213.8.195.150:80:( org.mortbay.log.invoke0 ) dispatch failed! threads=10 idle=0
[WARN] 48721657 btpool0-1 - Acceptor1 SelectChannelConnector @ 213.8.195.150:80 :( org.mortbay.log.invoke0 ) dispatch failed! threads=10 idle=0
[WARN] 48781657 btpool0-2 - Acceptor0 SelectChannelConnector @ 213.8.195.150:80 :( org.mortbay.log.invoke0 ) dispatch failed! threads=10 idle=0
[WARN] 48781657 btpool0-1 - Acceptor1 SelectChannelConnector @ 213.8.195.150:80:( org.mortbay.log.invoke0 ) dispatch failed! threads=10 idle=0
[WARN] 48841657 btpool0-1 - Acceptor1 SelectChannelConnector @ 213.8.195.150:80:( org.mortbay.log.invoke0 ) dispatch failed! threads=10 idle=0
[WARN] 48841657 btpool0-2 - Acceptor0 SelectChannelConnector @ 213.8.195.150:80 :( org.mortbay.log.invoke0 ) dispatch failed! threads=10 idle=0
[WARN] 48901657 btpool0-1 - Acceptor1 SelectChannelConnector @ 213.8.195.150:80 :( org.mortbay.log.invoke0 ) dispatch failed! threads=10 idle=0
[WARN] 48901657 btpool0-2 - Acceptor0 SelectChannelConnector @ 213.8.195.150:80:( org.mortbay.log.invoke0 ) dispatch failed! threads=10 idle=0
[WARN] 48961672 btpool0-1 - Acceptor1 SelectChannelConnector @ 213.8.195.150:80:( org.mortbay.log.invoke ) dispatch failed! threads=10 idle=0
[WARN] 48961672 btpool0-2 - Acceptor0 SelectChannelConnector @ 213.8.195.150:80 :( org.mortbay.log.invoke ) dispatch failed! threads=10 idle=0
[WARN] 49021672 btpool0-1 - Acceptor1 SelectChannelConnector @ 213.8.195.150:80 :( org.mortbay.log.invoke ) dispatch failed! threads=10 idle=0
[WARN] 49021672 btpool0-2 - Acceptor0 SelectChannelConnector @ 213.8.195.150:80:( org.mortbay.log.invoke ) dispatch failed! threads=10 idle=0
[WARN] 49081672 btpool0-1 - Acceptor1 SelectChannelConnector @ 213.8.195.150:80:( org.mortbay.log.invoke ) dispatch failed! threads=10 idle=0
[WARN] 49081672 btpool0-2 - Acceptor0 SelectChannelConnector @ 213.8.195.150:80 :( org.mortbay.log.invoke ) dispatch failed! threads=10 idle=0
