Only allow non-zero value maxDistances for BlockIterators

Prevents them from iterating infinitely and hanging the server
This commit is contained in:
Zach Brown 2016-04-12 23:08:55 -05:00
parent 3f68b7f930
commit a406f34921
No known key found for this signature in database
GPG Key ID: CC9DA35FC5450B76
1 changed files with 23 additions and 0 deletions

View File

@ -0,0 +1,23 @@
From 74c1e1dfd8eaaa86e68838b823ebd5177f007066 Mon Sep 17 00:00:00 2001
From: Zach Brown <zach.brown@destroystokyo.com>
Date: Tue, 12 Apr 2016 23:06:56 -0500
Subject: [PATCH] Only allow non-zero maxDistance BlockIterators
They can iterate infinitely causing the server to hang.
Fix your plugins!
diff --git a/src/main/java/org/bukkit/util/BlockIterator.java b/src/main/java/org/bukkit/util/BlockIterator.java
index 5c85778..0f34c66 100644
--- a/src/main/java/org/bukkit/util/BlockIterator.java
+++ b/src/main/java/org/bukkit/util/BlockIterator.java
@@ -52,6 +52,7 @@ public class BlockIterator implements Iterator<Block> {
*
*/
public BlockIterator(World world, Vector start, Vector direction, double yOffset, int maxDistance) {
+ com.google.common.base.Preconditions.checkArgument(maxDistance != 0, "maxDistance cannot be 0!"); // Paper - Only allow non-zero maxDistance
this.world = world;
this.maxDistance = maxDistance;
--
2.8.0