From a5bd2abce971eb8fbbe18de84840e9bd03ebcc84 Mon Sep 17 00:00:00 2001
From: Igor Derzhavin <igor.derzhavin@gmail.com>
Date: Tue, 26 May 2015 15:30:40 +0300
Subject: [PATCH] fix possible memory leak on malformed stream

Signed-off-by: Igor Derzhavin <igor.derzhavin@undev.ru>
---
 librtmp/rtmp.c | 8 +++++++-
 1 file changed, 7 insertions(+), 1 deletion(-)

diff --git a/librtmp/rtmp.c b/librtmp/rtmp.c
index ca7db6a..5a57189 100644
--- a/librtmp/rtmp.c
+++ b/librtmp/rtmp.c
@@ -3644,7 +3644,13 @@ RTMP_ReadPacket(RTMP *r, RTMPPacket *packet)
 	  packet->m_nBodySize = AMF_DecodeInt24(header + 3);
 	  packet->m_nBytesRead = 0;
 	  RTMPPacket_Free(packet);
-
+	  if (r->m_vecChannelsIn[packet->m_nChannel] != NULL &&
+	      (r->m_vecChannelsIn[packet->m_nChannel])->m_nBytesRead != 0)
+	  {
+	      RTMP_Log(RTMP_LOGWARNING, "%s, new packet has been started but previous one is not ready yet", __FUNCTION__);
+	      RTMPPacket_Dump(r->m_vecChannelsIn[packet->m_nChannel]);
+	      RTMPPacket_Free(r->m_vecChannelsIn[packet->m_nChannel]);
+	  }
 	  if (nSize > 6)
 	    {
 	      packet->m_packetType = header[6];
-- 
1.9.1

