From 5350c115bfc9d228311d925c869fd573b59367b7 Mon Sep 17 00:00:00 2001 From: tt2468 Date: Sat, 25 Sep 2021 18:29:27 -0700 Subject: [PATCH] Requests: Improve more request checks --- src/requesthandler/RequestHandler_General.cpp | 8 ++++---- src/requesthandler/RequestHandler_SceneItems.cpp | 5 ++++- 2 files changed, 8 insertions(+), 5 deletions(-) diff --git a/src/requesthandler/RequestHandler_General.cpp b/src/requesthandler/RequestHandler_General.cpp index eb501a83..044603f3 100644 --- a/src/requesthandler/RequestHandler_General.cpp +++ b/src/requesthandler/RequestHandler_General.cpp @@ -79,8 +79,8 @@ RequestResult RequestHandler::TriggerHotkeyByKeySequence(const Request& request) RequestStatus::RequestStatus statusCode = RequestStatus::NoError; std::string comment; - if (request.RequestData.contains("keyId") && !request.RequestData["keyId"].is_null()) { - if (!request.ValidateString("keyId", statusCode, comment)) + if (request.Contains("keyId")) { + if (!request.ValidateOptionalString("keyId", statusCode, comment)) return RequestResult::Error(statusCode, comment); std::string keyId = request.RequestData["keyId"]; @@ -88,8 +88,8 @@ RequestResult RequestHandler::TriggerHotkeyByKeySequence(const Request& request) } statusCode = RequestStatus::NoError; - if (request.RequestData.contains("keyModifiers") && !request.RequestData["keyModifiers"].is_null()) { - if (!request.ValidateObject("keyModifiers", statusCode, comment, true)) + if (request.Contains("keyModifiers")) { + if (!request.ValidateOptionalObject("keyModifiers", statusCode, comment, true)) return RequestResult::Error(statusCode, comment); const json keyModifiersJson = request.RequestData["keyModifiers"]; diff --git a/src/requesthandler/RequestHandler_SceneItems.cpp b/src/requesthandler/RequestHandler_SceneItems.cpp index 2b8303ee..cb1f7471 100644 --- a/src/requesthandler/RequestHandler_SceneItems.cpp +++ b/src/requesthandler/RequestHandler_SceneItems.cpp @@ -68,8 +68,11 @@ RequestResult RequestHandler::CreateSceneItem(const Request& request) return RequestResult::Error(RequestStatus::CannotAct, "You cannot create scene item of a scene within itself."); bool sceneItemEnabled = true; - if (request.RequestData.contains("sceneItemEnabled") && request.RequestData["sceneItemEnabled"].is_boolean()) + if (request.Contains("sceneItemEnabled")) { + if (!request.ValidateOptionalBoolean("sceneItemEnabled", statusCode, comment)) + return RequestResult::Error(statusCode, comment); sceneItemEnabled = request.RequestData["sceneItemEnabled"]; + } OBSSceneItemAutoRelease sceneItem = Utils::Obs::ActionHelper::CreateSceneItem(source, scene, sceneItemEnabled); if (!sceneItem)