Add guard against unpermitted requests to the entity script server

This commit is contained in:
Ryan Huffman 2017-01-19 14:34:44 -08:00
parent 7fc946f598
commit 3ac44e3a1c

View file

@ -62,6 +62,7 @@ EntityScriptServer::EntityScriptServer(ReceivedMessage& message) : ThreadedAssig
static const QString ENTITY_SCRIPT_SERVER_LOGGING_NAME = "entity-script-server"; static const QString ENTITY_SCRIPT_SERVER_LOGGING_NAME = "entity-script-server";
void EntityScriptServer::handleReloadEntityServerScriptPacket(QSharedPointer<ReceivedMessage> message, SharedNodePointer senderNode) { void EntityScriptServer::handleReloadEntityServerScriptPacket(QSharedPointer<ReceivedMessage> message, SharedNodePointer senderNode) {
if (senderNode->getCanRez() || senderNode->getCanRezTmp()) {
auto entityID = QUuid::fromRfc4122(message->read(NUM_BYTES_RFC4122_UUID)); auto entityID = QUuid::fromRfc4122(message->read(NUM_BYTES_RFC4122_UUID));
if (_entityViewer.getTree() && !_shuttingDown) { if (_entityViewer.getTree() && !_shuttingDown) {
@ -69,12 +70,14 @@ void EntityScriptServer::handleReloadEntityServerScriptPacket(QSharedPointer<Rec
_entitiesScriptEngine->unloadEntityScript(entityID); _entitiesScriptEngine->unloadEntityScript(entityID);
checkAndCallPreload(entityID, true); checkAndCallPreload(entityID, true);
} }
}
} }
void EntityScriptServer::handleEntityScriptGetStatusPacket(QSharedPointer<ReceivedMessage> message, SharedNodePointer senderNode) { void EntityScriptServer::handleEntityScriptGetStatusPacket(QSharedPointer<ReceivedMessage> message, SharedNodePointer senderNode) {
if (senderNode->getCanRez() || senderNode->getCanRezTmp()) {
MessageID messageID; MessageID messageID;
message->readPrimitive(&messageID); message->readPrimitive(&messageID);
auto entityID = QUuid::fromRfc4122(message->read(UUID_LENGTH_BYTES)); auto entityID = QUuid::fromRfc4122(message->read(NUM_BYTES_RFC4122_UUID));
auto replyPacketList = NLPacketList::create(PacketType::EntityScriptGetStatusReply, QByteArray(), true, true); auto replyPacketList = NLPacketList::create(PacketType::EntityScriptGetStatusReply, QByteArray(), true, true);
replyPacketList->writePrimitive(messageID); replyPacketList->writePrimitive(messageID);
@ -90,6 +93,7 @@ void EntityScriptServer::handleEntityScriptGetStatusPacket(QSharedPointer<Receiv
auto nodeList = DependencyManager::get<NodeList>(); auto nodeList = DependencyManager::get<NodeList>();
nodeList->sendPacketList(std::move(replyPacketList), *senderNode); nodeList->sendPacketList(std::move(replyPacketList), *senderNode);
}
} }
void EntityScriptServer::run() { void EntityScriptServer::run() {