环境描述:1. RedHat9
2. 启用了52级目录
奇怪,这么久了怎么都没有人提出来
问题出在bbs.c里int del_post(),gdb跟踪flag总是为0,传递给article.c里的int do_del_post的最后一个参数就总是为0
这部分代码有点烦杂,flag由 int flag=(POINTDIFF)extraarg; 传递过来.
1.2里的bbs.c里int del_post()与1.11相比差别太大了。
简单解决方法是修改article.c
[bbs@bbs libBBS]$ cvs diff -c article.c
Index: article.c
===================================================================
RCS file: /home/cvs/smth_bbs/libBBS/article.c,v
retrieving revision 3.205.2.3
diff -c -r3.205.2.3 article.c
*** article.c 25 Apr 2004 03:44:08 -0000 3.205.2.3
--- article.c 28 Apr 2004 05:42:45 -0000
***************
*** 317,323 ****
if ((int) user->numposts > 0 && !junkboard(board)) {
user->numposts--; /*自己删除的文章,减少post数 */
}
! } else if (!strstr(fh.owner, ".") && BMDEL_DECREASE && decpost /*版主删除,减少POST数 */ ) {
struct userec *lookupuser;
int id = getuser(fh.owner, &lookupuser);
--- 317,323 ----
if ((int) user->numposts > 0 && !junkboard(board)) {
user->numposts--; /*自己删除的文章,减少post数 */
}
! } else if (!strstr(fh.owner, ".") && BMDEL_DECREASE /*版主删除,减少POST数 */ ) {
struct userec *lookupuser;
int id = getuser(fh.owner, &lookupuser);
--
FROM 202.115.48.*