From 2f806363c22a1e4481fd8d4bbf1dc139e8b38b5e Mon Sep 17 00:00:00 2001 From: "prompt.ac/@jeffrey" Date: Tue, 15 Sep 2026 17:04:45 -0700 Subject: [PATCH] Protect backdrop rendering and fix compressed glyph reads --- oven/server.mjs | 2 +- system/netlify/functions/bdf-glyph.js | 5 +++-- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/oven/server.mjs b/oven/server.mjs index ced386a8ef..926b6a8a23 100644 --- a/oven/server.mjs +++ b/oven/server.mjs @@ -2102,7 +2102,7 @@ app.get('/kidlisp-backdrop/pool', async (req, res) => { res.status(500).json({ error: error.message }); } }); -app.post('/kidlisp-backdrop/pool/warm', async (req, res) => { +app.post('/kidlisp-backdrop/pool/warm', requireOSBuildAdmin, async (req, res) => { const force = req.query.force === 'true'; addServerLog('info', '🖼️', `Backdrop pool warm requested${force ? ' (force)' : ''}`); warmBackdropPool({ force }) diff --git a/system/netlify/functions/bdf-glyph.js b/system/netlify/functions/bdf-glyph.js index ae41471899..c942885dfa 100644 --- a/system/netlify/functions/bdf-glyph.js +++ b/system/netlify/functions/bdf-glyph.js @@ -527,7 +527,8 @@ export const handler = async (event) => { let bdfText; if (bdfFileName.endsWith('.gz')) { - const compressedData = await response.buffer(); + // native fetch has no .buffer(); node-fetch did + const compressedData = Buffer.from(await response.arrayBuffer()); bdfText = (await gunzip(compressedData)).toString("utf-8"); } else { bdfText = await response.text(); @@ -683,7 +684,7 @@ export const handler = async (event) => { let bdfText; if (bdfFileName.endsWith('.gz')) { // Handle compressed unifont - const compressedData = await response.buffer(); + const compressedData = Buffer.from(await response.arrayBuffer()); bdfText = (await gunzip(compressedData)).toString("utf-8"); } else { // Handle uncompressed BDF files -- 2.51.2