-
Notifications
You must be signed in to change notification settings - Fork 61
Open
Description
问题涉及到的zset接口:ZCount, ZLexCount, ZRange, ZRevRange, ZRangeByLex, ZRevRangeByLex, ZRangeByScore, ZRevRangeByScore.
以ZCount为例:
o, err := s.loadZSetRow(db, key)
if err != nil {
return 0, errors.Trace(err)
}
var count int64 = 0
f := func(o *zsetRow) error {
count++
return nil
}
if err = o.travelInRange(s, r, f); err != nil {
return 0, errors.Trace(err)
}
s.loadZSetRow方法在zset集合key不存在的情况下,可能会err != nil 并且 o == nil,而代码只判断了err是否为nil,没有判断o为nil的情况。后面调用o的方法的时候就panic了。
if err != nil || o == nil {
return 0, errors.Trace(err)
}
改成上面这样可以解决问题,其他的接口也同样修改,麻烦看下:)
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
No labels