荔园在线

荔园之美,在春之萌芽,在夏之绽放,在秋之收获,在冬之沉淀

[回到开始] [上一篇][下一篇]


发信人: jjk (pq), 信区: InstallBBS
标  题: FB3活动看板一行过长产生掉线的BUG及解决 zdh (转寄)
发信站: 荔园晨风BBS站 (Thu Nov 29 06:44:43 2001), 转信

【 以下文字转载自 jjk 的信箱 】
【 原文由 jjksam@smth.org 所发表 】
发信人: fishchen (小瑜鱼), 信区: BBSMan_Dev
标  题: FB3活动看板一行过长产生掉线的BUG及解决 zdh (转寄)
发信站: BBS 水木清华站 (Thu Nov  8 13:21:31 2001)

EEFB3活动看板一行过长产生掉线的BUG及解决

现象: 活动看板若一行超过特定长度后,当查看到这个活动看板时会有掉线现象.
原因: FB3对这个没有保护机制,造成对内存的非法读操作(溢出啦)

参考解决方法:

1.定义活动看板每行最大长度.
  在bbs.h中的这一行:
    #define ACBOARD_BUFSIZE     150  // 数字即为最大长度

2.在more.c中
  函数NNread_init()
  原:
     char buf[ACBOARD_BUFSIZE], buf2[ACBOARD_BUFSIZE + 10];


  原:(约102行左右)
    if (flag == 0) {
        strcpy(buf2, "K");
        strcat(buf2, buf);
    }
    memcpy(ptr, buf2, sizeof(buf2));
  改为:
    if (flag == 0) {
        strcpy(buf2, "K");
        strcat(buf2, buf);
    }
    buf2[ACBOARD_BUFSIZE-1] = '\0';
    memcpy(ptr, buf2, ACBOARD_BUFSIZE);

  其实解决方法有很多的啦...问题原因跟buf和buf2的声明有很大的关系,
  总之不要让它对内存乱弄就OK了

--
                                       fish_chen
                                E-mail:fish_cyt@163.net


※ 修改:·fishchen 於 Nov  8 13:21:50 修改本文·[FROM:   211.66.114.93]
※ 来源:·BBS 水木清华站 smth.org·[FROM: 211.66.114.93]
--
※ 转载:·荔园晨风BBS站 bbs.szu.edu.cn·[FROM: 192.168.0.146]


[回到开始] [上一篇][下一篇]

荔园在线首页 友情链接:深圳大学 深大招生 荔园晨风BBS S-Term软件 网络书店