From b6c15686eae0a49ce53ca3479448620d78e1a0aa Mon Sep 17 00:00:00 2001 From: Baptiste Arnaud Date: Thu, 25 Jan 2024 11:28:27 +0100 Subject: [PATCH] :bug: (setVariable) Avoid octal number evalution --- .../blocks/logic/setVariable/executeSetVariable.ts | 2 ++ .../features/blocks/logic/setVariable/executeSetVariable.ts | 5 +++++ 2 files changed, 7 insertions(+) diff --git a/packages/bot-engine/blocks/logic/setVariable/executeSetVariable.ts b/packages/bot-engine/blocks/logic/setVariable/executeSetVariable.ts index 12966fcf3..b6c75a2ca 100644 --- a/packages/bot-engine/blocks/logic/setVariable/executeSetVariable.ts +++ b/packages/bot-engine/blocks/logic/setVariable/executeSetVariable.ts @@ -63,6 +63,8 @@ const evaluateSetVariableExpression = const isSingleVariable = str.startsWith('{{') && str.endsWith('}}') && str.split('{{').length === 2 if (isSingleVariable) return parseVariables(variables)(str) + // To avoid octal number evaluation + if (!isNaN(str as unknown as number) && /0[^.].+/.test(str)) return str const evaluating = parseVariables(variables, { fieldToParse: 'id' })( str.includes('return ') ? str : `return ${str}` ) diff --git a/packages/embeds/js/src/features/blocks/logic/setVariable/executeSetVariable.ts b/packages/embeds/js/src/features/blocks/logic/setVariable/executeSetVariable.ts index 4226e93fb..6147a6123 100644 --- a/packages/embeds/js/src/features/blocks/logic/setVariable/executeSetVariable.ts +++ b/packages/embeds/js/src/features/blocks/logic/setVariable/executeSetVariable.ts @@ -9,6 +9,11 @@ export const executeSetVariable = async ({ args, }: ScriptToExecute): Promise<{ replyToSend: string | undefined }> => { try { + // To avoid octal number evaluation + if (!isNaN(content as unknown as number) && /0[^.].+/.test(content)) + return { + replyToSend: content, + } const func = AsyncFunction( ...args.map((arg) => arg.id), content.includes('return ') ? content : `return ${content}`