我的archlinux昨天升级了一下,今天发现清除未读不正常工作了,清空全部未读之后,重新登录,发现之前清除的未读又回来了。
看errorlog,发现如下的提示
[2010-01-25 16:52:51 16937 3.error] rains can't home/R/rains/.boardrc.gz.tmp open to write:(null)
[2010-01-25 16:53:01 16951 3.error] rains can't home/R/rains/.boardrc.gz.tmp open to write:(null)
[2010-01-25 16:53:48 16980 3.error] rains can't home/R/rains/.boardrc.gz.tmp open to write:(null)
[2010-01-25 16:55:32 17061 3.error] rains can't home/R/rains/.boardrc.gz.tmp open to write:(null)
[2010-01-25 16:56:46 17119 3.error] rains can't home/R/rains/.boardrc.gz.tmp open to write:(null)
找到boards.c中关于.boardrc.gz.tmp的代码
688 if ((fd = gzopen(dirfile_tmp, "w+b6")) == NULL) {
689 const char *errstr;
690 int gzerrno;
691
感觉w+b6这种写法很诡异。我记得php里面+是指读写模式。C应该也差不多吧。别的地方看不出问题。就从+号这里入手了
把688行w+b6改为wb6,make clean install 重启bbs,一切ok了。:D
昨天貌似zlib从1.2.3.4变成了1.2.3.7,不知道是不是这个原因导致的。
我顺便把另外两个w+b也替换成wb了
--
修改:elf FROM 118.67.127.*
FROM 118.67.127.*