From b412f72f6b2983835e28d44bf8c2ab020ccd198e Mon Sep 17 00:00:00 2001 From: sawka Date: Mon, 19 Aug 2024 11:54:54 -0700 Subject: [PATCH] remove unsafe btoa calls --- frontend/app/view/term/term.tsx | 3 ++- frontend/app/view/term/termsticker.tsx | 3 ++- frontend/app/view/term/termwrap.ts | 3 ++- 3 files changed, 6 insertions(+), 3 deletions(-) diff --git a/frontend/app/view/term/term.tsx b/frontend/app/view/term/term.tsx index 5e64a102..1842dd27 100644 --- a/frontend/app/view/term/term.tsx +++ b/frontend/app/view/term/term.tsx @@ -6,6 +6,7 @@ import { VDomView } from "@/app/view/term/vdom"; import { WOS, atoms, getEventORefSubject, globalStore, useBlockAtom, useSettingsAtom } from "@/store/global"; import * as services from "@/store/services"; import * as keyutil from "@/util/keyutil"; +import * as util from "@/util/util"; import clsx from "clsx"; import { produce } from "immer"; import * as jotai from "jotai"; @@ -277,7 +278,7 @@ const TerminalView = ({ blockId, model }: TerminalViewProps) => { if (asciiVal.length == 0) { return false; } - const b64data = btoa(asciiVal); + const b64data = util.stringToBase64(asciiVal); WshServer.ControllerInputCommand({ blockid: blockId, inputdata64: b64data }); return true; }; diff --git a/frontend/app/view/term/termsticker.tsx b/frontend/app/view/term/termsticker.tsx index fb9c33f2..29971e43 100644 --- a/frontend/app/view/term/termsticker.tsx +++ b/frontend/app/view/term/termsticker.tsx @@ -4,6 +4,7 @@ import { WshServer } from "@/app/store/wshserver"; import { createBlock } from "@/store/global"; import { getWebServerEndpoint } from "@/util/endpoints"; +import { stringToBase64 } from "@/util/util"; import clsx from "clsx"; import * as jotai from "jotai"; import * as React from "react"; @@ -98,7 +99,7 @@ function TermSticker({ sticker, config }: { sticker: StickerType; config: Sticke clickHandler = () => { console.log("clickHandler", sticker.clickcmd, sticker.clickblockdef); if (sticker.clickcmd) { - const b64data = btoa(sticker.clickcmd); + const b64data = stringToBase64(sticker.clickcmd); WshServer.ControllerInputCommand({ blockid: config.blockId, inputdata64: b64data }); } if (sticker.clickblockdef) { diff --git a/frontend/app/view/term/termwrap.ts b/frontend/app/view/term/termwrap.ts index b53dc57f..b0755cab 100644 --- a/frontend/app/view/term/termwrap.ts +++ b/frontend/app/view/term/termwrap.ts @@ -4,6 +4,7 @@ import { WshServer } from "@/app/store/wshserver"; import { PLATFORM, WOS, fetchWaveFile, getFileSubject, openLink, sendWSCommand } from "@/store/global"; import * as services from "@/store/services"; +import * as util from "@/util/util"; import { base64ToArray, fireAndForget } from "@/util/util"; import { SerializeAddon } from "@xterm/addon-serialize"; import { WebLinksAddon } from "@xterm/addon-web-links"; @@ -148,7 +149,7 @@ export class TermWrap { } handleTermData(data: string) { - const b64data = btoa(data); + const b64data = util.stringToBase64(data); WshServer.ControllerInputCommand({ blockid: this.blockId, inputdata64: b64data }); }