From e917193b0dbcdae64a4921762d9d6b2127f61caa Mon Sep 17 00:00:00 2001 From: litruv Date: Sun, 9 Aug 2026 15:50:23 +1000 Subject: [PATCH] Harden Linux clipboard image paste and bump cinny. Require a real image/* clipboard format before treating paste as an image, and pick up firework confetti plus URL-paste fixes from cinny. --- cinny | 2 +- electron/main.js | 13 +++++++++++++ 2 files changed, 14 insertions(+), 1 deletion(-) diff --git a/cinny b/cinny index 8a68a1e..13523fe 160000 --- a/cinny +++ b/cinny @@ -1 +1 @@ -Subproject commit 8a68a1e30a89d2e4007eb9f1665bea048d7f58cc +Subproject commit 13523fea2b641e7d63af1123b8e3324503292152 diff --git a/electron/main.js b/electron/main.js index fdd2a79..bfaa374 100644 --- a/electron/main.js +++ b/electron/main.js @@ -1278,10 +1278,23 @@ ipcMain.handle('open-external-url', async (event, url) => { // Read clipboard image ipcMain.handle('read-clipboard-image', async () => { try { + // Extra Things: only trust an image when the clipboard actually advertises one. + // On Linux, readImage() can return a stale bitmap after copying plain text/URLs. + const formats = clipboard.availableFormats(); + const hasImageFormat = formats.some((format) => format.startsWith('image/')); + if (!hasImageFormat) { + return { success: true, data: null }; + } + const image = clipboard.readImage(); if (image.isEmpty()) { return { success: true, data: null }; } + + const { width, height } = image.getSize(); + if (width < 2 || height < 2) { + return { success: true, data: null }; + } // Convert to PNG base64 const pngBuffer = image.toPNG();