w5500 的 wiznet 库的内存溢出问题

发布于 2020-12-13 11:01:23

以下发现的问题,大家可以发表一下意见交流是不是这样子

20201213104440.png
20201213105156.png

我在看这个源码的时候发现w5500的代码存在内存溢出的问题。如果错误了就会导致没有释放sock 这个对象的内存,而只是做了清零操作。

还有一个问题存在并发性问题的,如果有多个线程同时在调用这部分代码的时候会不会出现多个w_lock 被创建,但是最后只记录了一个,导致只记录了一个。
20201213105440.png

查看更多

关注者
0
被浏览
602
2 个回答
张世争
张世争 2020-12-14

找到问题,自己改下看看是否可以解决socket异常引起的内存不释放问题。
解决问题后,可以给组件包的作者提个issue,告诉他改进。

iamyhw
iamyhw 2020-12-14

没有从代码中看出溢出,sockets[]是静态分配的,只是在需要时获取一个空闲下标的使用,所以无所谓溢出问题,可以直接清零操作.
wiz_slock是static修饰的,它的意图是保证每次只有一个线程能成功运行alloc_socket()函数

撰写答案

请登录后再发布答案,点击登录

发布
问题

分享
好友

手机
浏览

扫码手机浏览