From 14419b35edc462604e5cab67e8a4c54058301f60 Mon Sep 17 00:00:00 2001 From: ppeb Date: Thu, 20 Mar 2025 00:01:05 -0500 Subject: [PATCH] Fix logging and bad version parsing of login hash --- gpcm/login.go | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/gpcm/login.go b/gpcm/login.go index d0b1fd7..39640d7 100644 --- a/gpcm/login.go +++ b/gpcm/login.go @@ -161,8 +161,9 @@ func (g *GameSpySession) login(command common.GameSpyCommand) { return } - gamecd, issueTime, userId, gsbrcd, cfc, region, lang, ingamesn, challenge, unitcd, isLocalhost, err := common.UnmarshalNASAuthToken(authToken) + gamecd, issueTime, userId, gsbrcd, cfc, region, lang, ingamesn, challenge, unitcd, isLocalhost, csnum, err := common.UnmarshalNASAuthToken(authToken) if err != nil { + logging.Error(g.ModuleName, "UnmarshalNASAuthToken failure", err.Error()) g.replyError(ErrLogin) return } @@ -237,7 +238,7 @@ func (g *GameSpySession) login(command common.GameSpyCommand) { return } - packVer, err := strconv.ParseUint(packIDStr, 10, 32) + packVer, err := strconv.ParseUint(packVerStr, 10, 32) if err != nil { logging.Error(g.ModuleName, "Invalid pack_ver:", aurora.Cyan(packVer)) g.replyError(ErrLoginBadPackID) @@ -258,8 +259,10 @@ func (g *GameSpySession) login(command common.GameSpyCommand) { return } + logging.Info(g.ModuleName, "Gamecd:", aurora.Cyan(gamecd), "CD Region:", aurora.Cyan(region)) + if !database.ValidateHash(uint32(packID), uint32(packVer), region, packHashStr) { - logging.Error(g.ModuleName, "Invalid pack_hash: Mismatched len,", aurora.Cyan(len(packHashStr))) + logging.Error(g.ModuleName, "Invalid pack_hash, failed to validate with stored hashes") g.replyError(ErrLoginBadHash) return }