- 论坛徽章:
- 0
|
我多说一句。首先感谢gladfly.
下面代码的第3行
stralloc tmplogin={0},mydefaultdomain={0};
应该改为
static stralloc tmplogin={0},mydefaultdomain={0};
否则有内存泄露。
因为坏人可以用RSET在一个连接发出许多MAIL FROM
smtp_auth_validfrom()被许多次调用。
tmplogin, mydefaultdomain会占用内存不退,越占越多。
也许我看的不完全对,因为我没有看PATCH后的代码。但希望你研究。
- +int smtp_auth_validfrom(from) char * from;
- +{
- + stralloc tmplogin={0},mydefaultdomain={0};
- + char authusername[256];
- + int k, userlen;
- +
- + if (!authd) return 1;
- +
- + authusername[255] = '';
- + userlen = k = str_len(smtpauthlogin);
- + k = byte_rchr(smtpauthlogin, k, '@');
- +
- + if (k == userlen)
- + {
- + k = byte_rchr(smtpauthlogin, userlen, '%');
- +
- + if (k == userlen)
- ......................
复制代码 |
|