Verify HudSetParams input when hotbar textures are set (#6013)
authorLoïc Blot <nerzhul@users.noreply.github.com>
Mon, 19 Jun 2017 12:10:30 +0000 (14:10 +0200)
committerGitHub <noreply@github.com>
Mon, 19 Jun 2017 12:10:30 +0000 (14:10 +0200)
* Verify HudSetParams input when hotbar textures are set

This fix #6011

src/network/clientpackethandler.cpp

index 6d64861606d3b5ab8e921bdf39c71e19bb646c80..e6f0d7092fbfacf5d4df6f9a626082c99843f794 100644 (file)
@@ -1174,9 +1174,21 @@ void Client::handleCommand_HudSetParam(NetworkPacket* pkt)
                        player->hud_hotbar_itemcount = hotbar_itemcount;
        }
        else if (param == HUD_PARAM_HOTBAR_IMAGE) {
+               // If value not empty verify image exists in texture source
+               if (value != "" && !getTextureSource()->isKnownSourceImage(value)) {
+                       errorstream << "Server sent wrong Hud hotbar image (sent value: '"
+                               << value << "')" << std::endl;
+                       return;
+               }
                player->hotbar_image = value;
        }
        else if (param == HUD_PARAM_HOTBAR_SELECTED_IMAGE) {
+               // If value not empty verify image exists in texture source
+               if (value != "" && !getTextureSource()->isKnownSourceImage(value)) {
+                       errorstream << "Server sent wrong Hud hotbar selected image (sent value: '"
+                                       << value << "')" << std::endl;
+                       return;
+               }
                player->hotbar_selected_image = value;
        }
 }