Add system data integrity check

pull/1/head
Flashfyre 2024-02-14 17:12:10 -05:00
parent 448eeeee4a
commit 9e38ccccbc
1 changed files with 9 additions and 4 deletions

View File

@ -120,6 +120,11 @@ func (s *Server) HandleSavedataUpdate(w http.ResponseWriter, r *http.Request) {
return return
} }
if system.TrainerId == 0 && system.SecretId == 0 {
http.Error(w, "invalid system data", http.StatusInternalServerError)
return
}
var gobBuffer bytes.Buffer var gobBuffer bytes.Buffer
err = gob.NewEncoder(&gobBuffer).Encode(system) err = gob.NewEncoder(&gobBuffer).Encode(system)
if err != nil { if err != nil {
@ -201,13 +206,13 @@ func (s *Server) HandleSavedataDelete(w http.ResponseWriter, r *http.Request) {
switch r.URL.Query().Get("datatype") { switch r.URL.Query().Get("datatype") {
case "0": // System case "0": // System
err := os.Remove("userdata/"+hexUuid+"/system.pzs") err := os.Remove("userdata/" + hexUuid + "/system.pzs")
if err != nil && !os.IsNotExist(err) { if err != nil && !os.IsNotExist(err) {
http.Error(w, fmt.Sprintf("failed to delete save file: %s", err), http.StatusInternalServerError) http.Error(w, fmt.Sprintf("failed to delete save file: %s", err), http.StatusInternalServerError)
return return
} }
case "1": // Session case "1": // Session
err := os.Remove("userdata/"+hexUuid+"/session.pzs") err := os.Remove("userdata/" + hexUuid + "/session.pzs")
if err != nil && !os.IsNotExist(err) { if err != nil && !os.IsNotExist(err) {
http.Error(w, fmt.Sprintf("failed to delete save file: %s", err), http.StatusInternalServerError) http.Error(w, fmt.Sprintf("failed to delete save file: %s", err), http.StatusInternalServerError)
return return