Skip to content

Commit d63e82c

Browse files
Catch slot IDs under 0 when checking inventory bounds in set slot packet (#5579)
* Catch slot IDs under 0 when checking inventory bounds in set slot packet and improve log messages * This should probably be an above or equals check
1 parent bf53c54 commit d63e82c

File tree

2 files changed

+5
-5
lines changed

2 files changed

+5
-5
lines changed

core/src/main/java/org/geysermc/geyser/inventory/Inventory.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -139,8 +139,8 @@ public GeyserItemStack getItem(int slot) {
139139
public abstract int getOffsetForHotbar(@Range(from = 0, to = 8) int slot);
140140

141141
public void setItem(int slot, @NonNull GeyserItemStack newItem, GeyserSession session) {
142-
if (slot > this.size) {
143-
session.getGeyser().getLogger().debug("Tried to set an item out of bounds! " + this);
142+
if (slot < 0 || slot >= this.size) {
143+
session.getGeyser().getLogger().debug("Tried to set an item out of bounds (slot was " + slot + ")! " + this);
144144
return;
145145
}
146146
GeyserItemStack oldItem = items[slot];

core/src/main/java/org/geysermc/geyser/translator/protocol/java/inventory/JavaContainerSetSlotTranslator.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -70,10 +70,10 @@ public void translate(GeyserSession session, ClientboundContainerSetSlotPacket p
7070

7171
Inventory inventory = holder.inventory();
7272
int slot = packet.getSlot();
73-
if (slot >= inventory.getSize()) {
73+
if (slot < 0 || slot >= inventory.getSize()) {
7474
GeyserLogger logger = session.getGeyser().getLogger();
75-
logger.warning("ClientboundContainerSetSlotPacket sent to " + session.bedrockUsername()
76-
+ " that exceeds inventory size!");
75+
logger.warning("Slot of ClientboundContainerSetSlotPacket sent to " + session.bedrockUsername()
76+
+ " is out of bounds! Was: " + slot + " for container: " + packet.getContainerId());
7777
if (logger.isDebug()) {
7878
logger.debug(packet.toString());
7979
logger.debug(inventory.toString());

0 commit comments

Comments
 (0)