From 3064a05b4da1689a9ac7364759ec12c2239e911a Mon Sep 17 00:00:00 2001 From: Dragory <2606411+Dragory@users.noreply.github.com> Date: Sat, 1 Apr 2023 21:34:14 +0300 Subject: [PATCH] fix: extra checks for tag get() function --- backend/src/plugins/Tags/util/renderTagBody.ts | 2 +- backend/src/utils.ts | 5 ++++- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/backend/src/plugins/Tags/util/renderTagBody.ts b/backend/src/plugins/Tags/util/renderTagBody.ts index 36103c7e..d8aef998 100644 --- a/backend/src/plugins/Tags/util/renderTagBody.ts +++ b/backend/src/plugins/Tags/util/renderTagBody.ts @@ -30,7 +30,7 @@ export async function renderTagBody( return val; }, get(name) { - return dynamicVars[name] == null ? "" : dynamicVars[name]; + return !dynamicVars.hasOwnProperty(name) || dynamicVars[name] == null ? "" : dynamicVars[name]; }, tag: async (name, ...subTagArgs) => { if (++tagFnCallsObj.calls > MAX_TAG_FN_CALLS) return ""; diff --git a/backend/src/utils.ts b/backend/src/utils.ts index 396493d4..e075f5e4 100644 --- a/backend/src/utils.ts +++ b/backend/src/utils.ts @@ -578,7 +578,10 @@ export function errorMessage(str, emoji = "⚠") { export function get(obj, path, def?): any { let cursor = obj; - const pathParts = path.split("."); + const pathParts = path + .split(".") + .map((s) => s.trim()) + .filter((s) => s !== ""); for (const part of pathParts) { // hasOwnProperty check here is necessary to prevent prototype traversal in tags if (!cursor.hasOwnProperty(part)) return def;