- 主题:无聊的担心一下kbs安全性的问题~~!
这个bug应该在下一个版本里修改过来吧?
【 在 nbysy (孩子他爸) 的大作中提到: 】
: 确切的说,是bug,不是hole.
--
FROM 211.155.136.*
到时候我再爆一个,哈
开玩笑
【 在 liangls (精灵射手) 的大作中提到: 】
: 这个bug应该在下一个版本里修改过来吧?
--
FROM 218.61.75.*
到目前为止,水木是不是还没有过遭到袭击的历史?
【 在 du2050 (杜杜) 的大作中提到: 】
: 到时候我再爆一个,哈
: 开玩笑
--
FROM 211.155.136.*
强,已经改好了
【 在 liangls (精灵射手) 的大作中提到: 】
: 这个bug应该在下一个版本里修改过来吧?
--
FROM 218.61.75.*
@#$#@$%#@%^
改这个居然不要重新登陆?
【 在 du2050 (杜杜) 的大作中提到: 】
: 强,已经改好了
--
FROM 218.75.202.*
问题出在 mail.c 里的 set_mailgroup_key() 与 init_mailgroup() 函数
把 mailgroup_t 里的 id数组直接接传给 usercomplete() 函数造成溢出, id的数组长度只有IDLEN+1, 而usercomplete()要求的长度是 STRLEN
修复这个bug 可做如下修改:
static int init_mailgroup(mailgroup_list_t * mgl, int entry, mailgroup_t * users)
{
+ char tmpuserid[STRLEN];
mailgroup_t user;
int ret = 0;
+ tmpuserid[0]='\0';
clear();
move(0, 0);
prints("初始化群体信件组用户向导\n");
bzero(&user, sizeof(user));
move(1, 0);
- usercomplete("请输入要增加的用户代号: ", user.id);
+ usercomplete("请输入要增加的用户代号: ",tmpuserid);
+ strncpy(user.id,tmpuserid,IDLEN);
+ user.id[IDLEN]='\0';
if (user.id[0] != '\0') {
if (searchuser(user.id) <= 0) {
move(2, 0);
prints(MSG_ERR_USERID);
pressanykey();
} else {
move(2, 0);
getdata(2, 0, "请输入用户说明: ", user.exp, sizeof(user.exp), DOECHO, NULL, true);
add_mailgroup_user(mgl, entry, users, &user);
move(3, 0);
prints("初始化完成!\n");
pressanykey();
ret = 1;
}
}
return ret;
}
另一个函数的修改方法类似.
我们站已经修改好了.
说实话,以前从来没用过群组信件的功能,这东西是干啥用的?
【 在 nbysy (孩子他爸) 的大作中提到: 】
: 确切的说,是bug,不是hole.
--
FROM 60.178.69.*
靠,大侠厉害啊~~.
完了之后从新make一下吗?
【 在 nbysy (孩子他爸) 的大作中提到: 】
: 问题出在 mail.c 里的 set_mailgroup_key() 与 init_mailgroup() 函数
: 把 mailgroup_t 里的 id数组直接接传给 usercomplete() 函数造成溢出, id的数组长度只有IDLEN+1, 而usercomplete()要求的长度是 STRLEN
: 修复这个bug 可做如下修改:
: ...................
--
FROM 211.155.136.*
呵呵,你看,你改的就不如人家改的好,全篇用到usercomplete函数有多处,即便是个个都注意了开大缓存也不好
后来人还可能用错这个函数。所以人家是在函数里限制输入长度了,就好多了,以后不会用错
还有总方法,就是把你的char tmpuserid[STRLEN];放在usercomplete里实现,这样既能全行输入,又能保证不溢出,hoho
【 在 nbysy (孩子他爸) 的大作中提到: 】
: 问题出在 mail.c 里的 set_mailgroup_key() 与 init_mailgroup() 函数
: 把 mailgroup_t 里的 id数组直接接传给 usercomplete() 函数造成溢出, id的数组长度只有IDLEN+1, 而usercomplete()要求的长度是 STRLEN
: 修复这个bug 可做如下修改:
: ...................
--
FROM 218.61.75.*
现在好像 IDLEN 搞得比较乱
【 在 du2050 (杜杜) 的大作中提到: 】
: 呵呵,你看,你改的就不如人家改的好,全篇用到usercomplete函数有多处,即便是个个都注意了开大缓存也不好
: 后来人还可能用错这个函数。所以人家是在函数里限制输入长度了,就好多了,以后不会用错
: 还有总方法,就是把你的char tmpuserid[STRLEN];放在usercomplete里实现,这样既能全行输入,又能保证不溢出,hoho
: ...................
--
FROM 61.50.142.*
主要是 usercomplete 这个函数还没怎么看,万一改错了,整个系统也完了,风险太大。
CVS 里改了吗?能贴一下吗?我这边上不了。
【 在 du2050 (杜杜) 的大作中提到: 】
: 呵呵,你看,你改的就不如人家改的好,全篇用到usercomplete函数有多处,即便是个个都注意了开大缓存也不好
: 后来人还可能用错这个函数。所以人家是在函数里限制输入长度了,就好多了,以后不会用错
: 还有总方法,就是把你的char tmpuserid[STRLEN];放在usercomplete里实现,这样既能全行输入,又能保证不溢出,hoho
: ...................
--
FROM 60.178.69.*