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