mirror of
https://github.com/WiiLink24/wfc-server.git
synced 2026-08-05 18:01:11 -05:00
SAKE: Validate the scores submitted in file uploads from Mario Kart Wii
This commit is contained in:
parent
eb8bf13326
commit
eddb4416f7
|
|
@ -110,7 +110,7 @@ func handleMarioKartWiiGhostDownloadRequest(moduleName string, responseWriter ht
|
|||
}
|
||||
|
||||
time, err := strconv.Atoi(timeString)
|
||||
if err != nil || time <= 0 {
|
||||
if err != nil || time <= 0 || time >= 360000 /* 6 minutes */ {
|
||||
logging.Error(moduleName, "Invalid time:", aurora.Cyan(timeString))
|
||||
responseWriter.Header().Set(SakeFileResultHeader, strconv.Itoa(SakeFileResultMissingParameter))
|
||||
return
|
||||
|
|
@ -167,14 +167,14 @@ func handleMarioKartWiiGhostUploadRequest(moduleName string, responseWriter http
|
|||
return
|
||||
}
|
||||
courseId := common.MarioKartWiiCourseId(courseIdInt)
|
||||
if courseId < common.MarioCircuit || courseId > 32767 {
|
||||
if courseId < common.MarioCircuit || isContest == courseId.IsValid() || courseId > 32767 {
|
||||
logging.Error(moduleName, "Invalid course ID:", aurora.Cyan(courseIdString))
|
||||
responseWriter.Header().Set(SakeFileResultHeader, strconv.Itoa(SakeFileResultMissingParameter))
|
||||
return
|
||||
}
|
||||
|
||||
score, err := strconv.Atoi(scoreString)
|
||||
if err != nil || score <= 0 {
|
||||
if err != nil || score <= 0 || score >= 360000 /* 6 minutes */ {
|
||||
logging.Error(moduleName, "Invalid score:", aurora.Cyan(scoreString))
|
||||
responseWriter.Header().Set(SakeFileResultHeader, strconv.Itoa(SakeFileResultMissingParameter))
|
||||
return
|
||||
|
|
|
|||
|
|
@ -59,7 +59,7 @@ ALTER TABLE public.users OWNER TO wiilink;
|
|||
CREATE TABLE IF NOT EXISTS public.mario_kart_wii_sake (
|
||||
regionid smallint NOT NULL CHECK (regionid >= 1 AND regionid <= 7),
|
||||
courseid smallint NOT NULL CHECK (courseid >= 0 AND courseid <= 32767),
|
||||
score integer NOT NULL CHECK (score > 0),
|
||||
score integer NOT NULL CHECK (score > 0 AND score < 360000),
|
||||
pid integer NOT NULL CHECK (pid > 0),
|
||||
playerinfo varchar(108) NOT NULL CHECK (LENGTH(playerinfo) = 108),
|
||||
ghost bytea CHECK (ghost IS NULL OR (OCTET_LENGTH(ghost) BETWEEN 148 AND 10240)),
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user