Ticket #16 (closed Bug: Deferred)

Opened 5 years ago

Last modified 3 years ago

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

Change History

Changed 5 years ago by joachim

Could you please provide a short example on how to trigger the first error? Best would be a little .swf that calls a method on the server so the error is raised.

And please open a separate issue for the second bug with a description when this error occurs and how to reproduce it.

Changed 5 years ago by chameleon

I just had the IllegalArgumentException happen on my server as well. The server required a restart to begin working again. Unfotunately we did nothing abnormal that we know about to cause the issue since we just stream standard flv files with flash player skins. I reported this issue accidentally as APPSERVER-20 before seeing this ticket.

Changed 5 years ago by joachim

please try r1678 and see if this still triggers the error

Changed 5 years ago by joachim

Closing as no further feedback was received. Please reopen if problem persists.

Changed 3 years ago by danielr

  • status changed from new to closed
Note: See TracTickets for help on using tickets.