diff options
Diffstat (limited to 'Minecraft.World/ContainerSetContentPacket.cpp')
| -rw-r--r-- | Minecraft.World/ContainerSetContentPacket.cpp | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/Minecraft.World/ContainerSetContentPacket.cpp b/Minecraft.World/ContainerSetContentPacket.cpp index 13cfebd7..28ce64e9 100644 --- a/Minecraft.World/ContainerSetContentPacket.cpp +++ b/Minecraft.World/ContainerSetContentPacket.cpp @@ -20,11 +20,11 @@ ContainerSetContentPacket::ContainerSetContentPacket() ContainerSetContentPacket::ContainerSetContentPacket(int containerId, vector<shared_ptr<ItemInstance> > *newItems) { this->containerId = containerId; - items = ItemInstanceArray((int)newItems->size()); + items = ItemInstanceArray(static_cast<int>(newItems->size())); for (unsigned int i = 0; i < items.length; i++) { shared_ptr<ItemInstance> item = newItems->at(i); - items[i] = item == NULL ? nullptr : item->copy(); + items[i] = item == nullptr ? nullptr : item->copy(); } } @@ -32,6 +32,9 @@ void ContainerSetContentPacket::read(DataInputStream *dis) //throws IOException { containerId = dis->readByte(); int count = dis->readShort(); + + if (count < 0 || count > 256) count = 0; + items = ItemInstanceArray(count); for (int i = 0; i < count; i++) { |
