Formspec verification: Fix show_formspec inside callbacks (#7374)
authorSmallJoker <mk939@ymail.com>
Sat, 26 May 2018 10:50:44 +0000 (12:50 +0200)
committerSmallJoker <mk939@ymail.com>
Sat, 26 May 2018 10:50:44 +0000 (12:50 +0200)
src/network/serverpackethandler.cpp

index 2d810836ba5785a40b67aebf5e858e06188b4ec7..c961d406e6a2455aaf69159e7c1b5cc5d6aff7af 100644 (file)
@@ -1514,9 +1514,10 @@ void Server::handleCommand_InventoryFields(NetworkPacket* pkt)
        if (peer_state_iterator != m_formspec_state_data.end()) {
                const std::string &server_formspec_name = peer_state_iterator->second;
                if (client_formspec_name == server_formspec_name) {
-                       m_script->on_playerReceiveFields(playersao, client_formspec_name, fields);
                        if (fields["quit"] == "true")
                                m_formspec_state_data.erase(peer_state_iterator);
+
+                       m_script->on_playerReceiveFields(playersao, client_formspec_name, fields);
                        return;
                }
                actionstream << "'" << player->getName()