dpvs
dpvs copied to clipboard
1.9.6大家都能正常编译过去吗?
proxy_proto_insert函数中,有char ppv1buf[108], tbuf1[64], tbuf2[64];三个变量。然后下面有语句sprintf(ppv1buf, "PROXY TCP6 %s %s %d %d\r\n", tbuf1, tbuf2, ntohs(ppinfo->addr.ip6.src_port), ntohs(ppinfo->addr.ip6.dst_port));编译器会直接报出有溢出风险。由于默认有-Werror选项,会直接导致编译失败。
暂时我把ppv1buf扩大到256个字节,可以编译通过。问下这个变量为啥要定在108个字节?是不是该用snprintf或者扩大他的容量?
这个地方缺失有漏洞,我们后面修复下。 ppv1buf 的长度设置为108,是因为 proxy protocol v1 的数据长度最大是107字节。