spin6lock / python-sproto

python binding to sproto

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

内存泄漏

NarsuAltan opened this issue · comments

系统:window7 64位
python:2.7.9 64位
有3处会引起内存泄漏.
如图:
1
2
3

@narsu1984 感谢指正,我明天修复^_^

非常感谢@spin6lock 对sproto的贡献 :-)
我们项目引用了python-sproto,非常便捷.
上述问题是测试发现的,修复是否严禁还需验证.

在测试中我们还发现了两个bug.
1.string长度超过4096会越界.
2.判断大小时,负数会被强转成unsigned.
1
2

@narsu1984 2.判断大小时,负数会被强转成unsigned. 这个没看懂,SIZEOF_LENGTH和sizeof(v)都是正数,为什么会出现负数呢?

if (size < (int)(SIZEOF_LENGTH + sizeof(v)))
如果size是负数,就会被强转成unsigned.数值很大,导致越界.
我在测试的时候遇到过,忘记怎么重现了.

@spin6lock 忘记@了 呵呵

@narsu1984 sproto.c里改size的地方比较多,如果某个地方size-=xxx导致size为负数,是有可能的,我先试试构造一个测试用例出来,再修复这个问题,谢谢~