NALDecoder中的一个bug

来源:互联网 发布:java框架是什么意思 编辑:程序博客网 时间:2024/04/26 05:16

NALDecoder是在网上很容易搜到的一个h.264的NAL层的解码小程序。其中有如下一段代码:

else if(n->len>1400){//得到该nalu需要用多少长度为1400字节的RTP包来发送int k=0,l=0;k=n->len/1400;//需要k个1400字节的RTP包l=n->len%1400;//最后一个RTP包的需要装载的字节数

上面最后一行中当n->len被1400整除时l为0。在后续的代码中用到了l:

memcpy(nalu_payload,n->buf+t*1400+1,l-1);//将nalu最后剩余的l-1(去掉了一个字节的NALU头)字节内容写入sendbuf[14]开始的字符串。

此时l-1为-1,memcpy把它用作0xFFFFFFFF,执行后出现异常。

原创粉丝点击