From 1834abe5bc0c0539c7ed1538201e9ac8709f9bc1 Mon Sep 17 00:00:00 2001 From: allegroai <> Date: Mon, 1 Jun 2020 11:49:35 +0300 Subject: [PATCH] Better handling of execution parameter paths --- server/services/tasks.py | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) diff --git a/server/services/tasks.py b/server/services/tasks.py index 1ac0475..aec1573 100644 --- a/server/services/tasks.py +++ b/server/services/tasks.py @@ -111,12 +111,18 @@ def escape_execution_parameters(call: APICall): default_prefix = "execution.parameters." def escape_paths(paths, prefix=default_prefix): - return [ - prefix + ParameterKeyEscaper.escape(path[len(prefix) :]) - if path.startswith(prefix) - else path - for path in paths - ] + escaped_paths = [] + for path in paths: + if path == prefix: + raise errors.bad_request.ValidationError( + "invalid task field", path=path + ) + escaped_paths.append( + prefix + ParameterKeyEscaper.escape(path[len(prefix) :]) + if path.startswith(prefix) + else path + ) + return escaped_paths projection = Task.get_projection(call.data) if projection: