Fix upload handling

This commit is contained in:
Paul Fulham 2020-11-21 22:00:05 -08:00
parent 6e131583dd
commit 18b768b32f

View file

@ -101,10 +101,10 @@ public class ServerSchematicLoader {
return;
}
Path schematicPath = Paths.get(getSchematicPath()).toAbsolutePath();
Path playerSchematicsPath = Paths.get(getSchematicPath(), player.getGameProfile().getName()).toAbsolutePath();
Path uploadPath = schematicPath.resolve(playerSchematicId).normalize();
if (!uploadPath.startsWith(schematicPath)) {
Path uploadPath = playerSchematicsPath.resolve(schematic).normalize();
if (!uploadPath.startsWith(playerSchematicsPath)) {
Create.logger.warn("Attempted Schematic Upload with directory escape: {}", playerSchematicId);
return;
}
@ -123,6 +123,9 @@ public class ServerSchematicLoader {
if (table == null)
return;
// Delete schematic with same name
Files.deleteIfExists(uploadPath);
// Too many Schematics
long count;
try (Stream<Path> list = Files.list(Paths.get(playerPath))) {
@ -295,6 +298,9 @@ public class ServerSchematicLoader {
return;
try {
// Delete schematic with same name
Files.deleteIfExists(path);
// Too many Schematics
long count;
try (Stream<Path> list = Files.list(Paths.get(playerPath))) {