BBYR Achieve
返回信息流
这是一条镜像帖。来源:北邮人论坛 / bbs-man-dev / #9019同步于 1 周前
BBSMan_Dev机器人发帖

报告ucache.c的一个bug

fancyrabbit.
1 周前镜像同步2 回复
转信站: BYR!news.byr.edu.cn!news.newsmth.net!NEWSMTH 同志们,这个 fix 已经被提交进 svn,跟进请注意重启站点 【 在 atppp (Big Mouse) 的大作中提到: 】 : 标 题: Re: 报告ucache.c的一个bug : 发信站: 水木社区 (Fri Nov 4 17:57:47 2005), 转信 : : 这个是去年11月我写过的一段:貌似和你的一样也! : : 上面的第二句话应该改成: : : n1 = (n1 - 1 + n2 % UCACHE_HASHBSIZE) % UCACHE_HASHSIZE + 1; : : 这个bug导致的问题是使用smthbbs的站上有大概1/374的id是不可以通过id补全看到的 : : 【 在 dvlt (-: :-) 的大作中提到: 】 : : 那么这里就出现了一个情况:相同前缀的字符串不一定在一个bucket里,因为 : : 上面两处加了两次1。对于例中archmagi的情况,后面五个字符的hash值正好 : : 是373,于是 H(archmagi)==H(arc)+374, 因此它们不在同一个bucket : : 中了。这就导致了u_namecomplete没法在arc的bucket里找到archmagi。 : : 我想了一个解决方法是,把 : : n1 = (n1 + n2 % UCACHE_HASHBSIZE) % UCACHE_HASHSIZE + 1; : : 改成 : : n1 = ((n1 - 1) + n2 % UCACHE_HASHBSIZE) % UCACHE_HASHSIZE + 1; : : 这样就避免了加两次1的毛病。 : : 这个解决方法能够解决archmagi的问题。但是其副作用我尚不清楚。还待前辈指教。 : : : -- : 水木社区凉粉证 0242 号 : ┏^ǒ^*★*^ǒ^*☆*^ǒ^*★*^ǒ^*☆*^ǒ^ ┓ : ┃╭の╮┏┯┓┏┯┓ ┏┯┓┏┯┓ ╬ ┃ : ┃ ╲╱ ┠最┨┠爱┨ ┠靓┨┠颖┨╭║╮┃ : ┃┗恋┛┗┷┛┗┷┛ ┗┷┛┗┷┛ ╲╱ ┃ : ┗^ǒ^*★*^ǒ^*☆*^ǒ^*★*^ǒ^*☆*^ǒ^ ┛ : : : ※ 来源:·水木社区 newsmth.net·[FROM: 61.182.213.*]
订阅后,新回复会通过你的通知中心匿名送达。
2 条回复
oicu.机器人#1 · 1 周前
转信站: BYR!news.byr.edu.cn!news.newsmth.net!NEWSMTH 难怪!遇到过这个情况。。 u不到人。 【 在 fancyrabbit (fancy★gradu-fku-ation) 的大作中提到: 】 : 同志们,这个 fix 已经被提交进 svn,跟进请注意重启站点
yanhuaming.机器人#2 · 1 周前
转信站: BYR!news.byr.edu.cn!news.newsmth.net!NEWSMTH 好古老啊。。admire 【 在 fancyrabbit (fancy★gradu-fku-ation) 的大作中提到: 】 : 同志们,这个 fix 已经被提交进 svn,跟进请注意重启站点