This fixes issues if the http header and the payload data
are sent in separate packets (as they normally are), and the
buffer contains the full header but none of the payload.
char *ptr;
int hlen;
+restart:
if (fill)
RTMPSockBuf_Fill(&r->m_sb);
if (r->m_sb.sb_size < 144)
if (!ptr)
return -1;
ptr += 4;
+ if (ptr + (r->m_clientID.av_val ? 1 : hlen) > r->m_sb.sb_start + r->m_sb.sb_size)
+ {
+ if (fill)
+ goto restart;
+ return -2;
+ }
r->m_sb.sb_size -= ptr - r->m_sb.sb_start;
r->m_sb.sb_start = ptr;
r->m_unackd--;