Skip to content

Commit

Permalink
store: return nil in LoadSession on error
Browse files Browse the repository at this point in the history
Fixes #734
  • Loading branch information
tulir committed Feb 12, 2025
1 parent 96d2f42 commit 9ae0194
Showing 1 changed file with 5 additions and 2 deletions.
7 changes: 5 additions & 2 deletions store/signal.go
Original file line number Diff line number Diff line change
Expand Up @@ -88,20 +88,23 @@ func (device *Device) ContainsPreKey(preKeyID uint32) bool {

func (device *Device) LoadSession(address *protocol.SignalAddress) *record.Session {
var rawSess []byte
var err error
for i := 0; ; i++ {
var err error
rawSess, err = device.Sessions.GetSession(address.String())
if err == nil || !device.handleDatabaseError(i, err, "load session with %s", address.String()) {
break
}
}
if rawSess == nil {
if err != nil {
return nil
}
return record.NewSession(SignalProtobufSerializer.Session, SignalProtobufSerializer.State)
}
sess, err := record.NewSessionFromBytes(rawSess, SignalProtobufSerializer.Session, SignalProtobufSerializer.State)
if err != nil {
device.Log.Errorf("Failed to deserialize session with %s: %v", address.String(), err)
return record.NewSession(SignalProtobufSerializer.Session, SignalProtobufSerializer.State)
return nil
}
return sess
}
Expand Down

0 comments on commit 9ae0194

Please sign in to comment.