spigot/CraftBukkit-Patches/0065-Safer-JSON-Loading.patch

45 lines
2.2 KiB
Diff
Raw Normal View History

2023-06-08 01:30:00 +10:00
From 513699790fb48a59c23d0ecd8a8591f1883b00d2 Mon Sep 17 00:00:00 2001
2014-07-08 09:44:30 +10:00
From: Suddenly <suddenly@suddenly.coffee>
Date: Tue, 8 Jul 2014 09:44:18 +1000
Subject: [PATCH] Safer JSON Loading
2021-03-16 09:00:00 +11:00
diff --git a/src/main/java/net/minecraft/server/players/JsonList.java b/src/main/java/net/minecraft/server/players/JsonList.java
index 1220c2e88..86fb74deb 100644
2021-03-16 09:00:00 +11:00
--- a/src/main/java/net/minecraft/server/players/JsonList.java
+++ b/src/main/java/net/minecraft/server/players/JsonList.java
@@ -174,6 +174,14 @@ public abstract class JsonList<K, V extends JsonListEntry<K>> {
2021-11-22 09:00:00 +11:00
this.map.put(this.getKeyForUser(jsonlistentry.getUser()), (V) jsonlistentry); // CraftBukkit - decompile error
2018-07-15 10:00:00 +10:00
}
}
2017-05-19 21:00:22 +10:00
+ // Spigot Start
2021-01-22 16:51:21 +11:00
+ } catch ( com.google.gson.JsonParseException | NullPointerException ex )
2017-05-19 21:00:22 +10:00
+ {
2021-06-11 15:00:00 +10:00
+ org.bukkit.Bukkit.getLogger().log( java.util.logging.Level.WARNING, "Unable to read file " + this.file + ", backing it up to {0}.backup and creating new copy.", ex );
+ File backup = new File( this.file + ".backup" );
+ this.file.renameTo( backup );
+ this.file.delete();
2017-05-19 21:00:22 +10:00
+ // Spigot End
2021-06-11 15:00:00 +10:00
} catch (Throwable throwable) {
if (bufferedreader != null) {
try {
2021-03-16 09:00:00 +11:00
diff --git a/src/main/java/net/minecraft/server/players/UserCache.java b/src/main/java/net/minecraft/server/players/UserCache.java
index 1295a3340..3abeb707c 100644
2021-03-16 09:00:00 +11:00
--- a/src/main/java/net/minecraft/server/players/UserCache.java
+++ b/src/main/java/net/minecraft/server/players/UserCache.java
2021-11-22 09:00:00 +11:00
@@ -262,6 +262,11 @@ public class UserCache {
2021-06-11 15:00:00 +10:00
}
2015-05-09 21:23:26 +01:00
} catch (FileNotFoundException filenotfoundexception) {
;
+ // Spigot Start
2021-01-22 16:51:21 +11:00
+ } catch (com.google.gson.JsonSyntaxException | NullPointerException ex) {
2022-03-01 02:00:00 +11:00
+ UserCache.LOGGER.warn( "Usercache.json is corrupted or has bad formatting. Deleting it to prevent further issues." );
2021-06-11 15:00:00 +10:00
+ this.file.delete();
2015-05-09 21:23:26 +01:00
+ // Spigot End
2020-08-12 07:00:00 +10:00
} catch (JsonParseException | IOException ioexception) {
2021-06-11 15:00:00 +10:00
UserCache.LOGGER.warn("Failed to load profile cache {}", this.file, ioexception);
2020-08-12 07:00:00 +10:00
}
2014-07-08 09:44:30 +10:00
--
2023-06-08 01:30:00 +10:00
2.40.1
2014-07-08 09:44:30 +10:00