前些天,遇到了一个问题:需要在系统中添加一个小功能,单独测试,然后植入系统。
代码使用了从网上下载的函数,模块单独运行,没有问题,但是放在系统中运行就会出问题。
不得已的情况下,只能一行行代码排查,发现一个地方使用了malloc但是没有使用free。
结果,发现
malloc(rdata_len1);
之后使用了
prdata[rdata_len] = 0;
之后没有free。
直接测试模块函数没有问题,只要加入free(p);就崩溃。
系统运行也是很快就崩溃。
这是典型的内存溢出问题。
应该感谢那些提供方案的人,但是里面的错误还是要自己排查,不能拿来就用,特别是涉及到细节的时候。这个不像是使用执行模块,对错一目了然。
?