139  
查询码:00000084
边缘网关开发的问题积累
作者: 董康康 于 2020年04月23日 发布在分类 / 物联网组 / 边缘接入网关 下,并于 2020年04月23日 编辑


                                            插件发送数据时,数组越界的问题

1.问题的出现

    为了简化边缘网关的开发难度,将轮询,控制和处理放到一个cpp(OTM99Drive.cpp)当中,其他业务处理放到另一个cpp(realadapter.cpp)当中,这样以后编写新的插件就可以只更新OTM99Drive.cpp就可以了,因为这样的措施导致了问题---数组越界。

2.问题的具体分析

(1)OTM99Drive.cpp当中的代码

粘贴图片

(2)realadapter.cpp

粘贴图片


如上图可见,realadapter定义了大小为1024个字节的lpReturnData数组,意图把他传给 OTM99Drive的poll函数,让其给数组赋值,在一般情况下来讲,这种方式是没什么问题的,但是,当要发送的字节数大于1024个字节时,如果不注意(因为潜意识认为只要更新OTM99Drive.cpp的文件就可以了),将会造成数组的越界,导致程序的崩溃


3.解决

第一种方法是增加缓冲区

第二种方法是利用可以自增的stl的类模板




















 推荐知识

 历史版本

修改日期 修改人 备注
2020-04-23 14:34:51[当前版本] 董康康 创建版本

 附件

附件类型

PNGPNG

知识分享平台 -V 4.8.7 -wcp