-
Notifications
You must be signed in to change notification settings - Fork 4.2k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
fix sproto write_ff buffer overflow #1205
Conversation
两个问题:
|
PS: 看样子是最多会越界访问2个字节,这个问题跟之前我修复 |
我明白了,是因为最后一个 seg 补了一个或两个 0 ,导致统计数字 overflow 。但似乎这样,对应的 unpack 有点问题。 |
|
我觉得这里是不会发生 write overflow , 因为 bufsz 提前减了,并且在 但是,这里的 read overflow 可能发生在所有的 |
发现计算剩余长度的时候也不能直接 srcsz - i,要计算从最后一个字节到 ff_srcstart 的长度。。。我修正了一下 |
是的,这里只是 read overflow,不过我用不同长度的字符串测试下来,只有这里发生了overflow,其他地方并没有发生。 |
我仔细考虑了一下,的确只有这个分支有问题。但我认为这里的设计有点问题。如果回溯去看, 这里也是在修同样的问题,但是没有改彻底。 我建议这样改:27f1823 看看对不对? |
加一个判断条件就对了。 |
fix sproto write_ff buffer overflow (cloudwu#1205)
* bugfix , see cloudwu#1205 * fix bug Co-authored-by: Cloud Wu <cloudwu@gmail.com>
buffer overflow occurs when packing a string with length = 2046 or 2047