From ba1eea81e7ba4cb783d3406e7464825a57f0d72c Mon Sep 17 00:00:00 2001 From: wish Date: Sat, 10 Jun 2023 16:04:17 +1000 Subject: [PATCH] prevent save error crashes --- server/channelserver/handlers.go | 2 +- server/channelserver/handlers_character.go | 4 ++++ 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/server/channelserver/handlers.go b/server/channelserver/handlers.go index 95b2ddde3..1c189f5fb 100644 --- a/server/channelserver/handlers.go +++ b/server/channelserver/handlers.go @@ -245,7 +245,7 @@ func logoutPlayer(s *Session) { removeSessionFromStage(s) saveData, err := GetCharacterSaveData(s, s.charID) - if err != nil { + if err != nil || saveData == nil { s.logger.Error("Failed to get savedata") return } diff --git a/server/channelserver/handlers_character.go b/server/channelserver/handlers_character.go index 165580fe7..a53d4c42a 100644 --- a/server/channelserver/handlers_character.go +++ b/server/channelserver/handlers_character.go @@ -81,6 +81,10 @@ func GetCharacterSaveData(s *Session, charID uint32) (*CharacterSaveData, error) return nil, err } + if len(saveData.decompSave) < pointerKQF { + return nil, err + } + saveData.updateStructWithSaveData() return saveData, nil