Skip to content
项目
群组
代码片段
帮助
当前项目
正在载入...
登录 / 注册
切换导航面板
Z
ZLMediaKit
概览
Overview
Details
Activity
Cycle Analytics
版本库
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
问题
0
Issues
0
列表
Board
标记
里程碑
合并请求
0
Merge Requests
0
CI / CD
CI / CD
流水线
作业
日程表
图表
维基
Wiki
代码片段
Snippets
成员
Collapse sidebar
Close sidebar
活动
图像
聊天
创建新问题
作业
提交
Issue Boards
Open sidebar
张翔宇
ZLMediaKit
Commits
38fd547b
Commit
38fd547b
authored
6 years ago
by
xiongziliang
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
修复rtmp复合包边界检查bug
parent
0808cdee
隐藏空白字符变更
内嵌
并排
正在显示
1 个修改的文件
包含
5 行增加
和
3 行删除
+5
-3
src/Rtmp/RtmpProtocol.cpp
+5
-3
没有找到文件。
src/Rtmp/RtmpProtocol.cpp
查看文件 @
38fd547b
...
...
@@ -679,8 +679,8 @@ void RtmpProtocol::handle_rtmpChunk(RtmpPacket& chunkData) {
break
;
case
MSG_AGGREGATE
:
{
auto
ptr
=
(
uint8_t
*
)
chunkData
.
strBuf
.
data
();
auto
ptr_tail
=
(
uint8_t
*
)
&
chunkData
.
strBuf
.
back
()
;
while
(
ptr
<
ptr_tail
-
8
-
3
){
auto
ptr_tail
=
ptr
+
chunkData
.
strBuf
.
length
()
;
while
(
ptr
+
8
+
3
<
ptr_tail
){
auto
type
=
*
ptr
;
ptr
+=
1
;
auto
size
=
load_be24
(
ptr
);
...
...
@@ -717,9 +717,10 @@ void RtmpProtocol::handle_rtmpChunk(RtmpPacket& chunkData) {
//参考FFmpeg多拷贝了4个字节
size
+=
4
;
if
(
ptr
+
size
>
ptr_tail
){
// ErrorL << ptr + size << " " << ptr_tail << " " << ptr_tail - ptr - size;
break
;
}
// DebugL << (int)type << " " << size << " " << ts << " " <<
hexdump(ptr,size > 32 ? 32 : size)
;
// DebugL << (int)type << " " << size << " " << ts << " " <<
chunkData.timeStamp << " " << ptr_tail - ptr
;
RtmpPacket
sub_packet
;
sub_packet
.
strBuf
.
resize
(
size
);
memcpy
((
char
*
)
sub_packet
.
strBuf
.
data
(),
ptr
,
size
);
...
...
@@ -731,6 +732,7 @@ void RtmpProtocol::handle_rtmpChunk(RtmpPacket& chunkData) {
handle_rtmpChunk
(
sub_packet
);
ptr
+=
size
;
}
// InfoL << ptr_tail - ptr;
}
break
;
default
:
...
...
This diff is collapsed.
Click to expand it.
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论