From d8686e7c64824de16c17db30acdf69d4012e5ca2 Mon Sep 17 00:00:00 2001 From: Lovell Fuller Date: Fri, 12 Sep 2025 12:33:59 +0100 Subject: [PATCH] Ensure Electron support for images with XMP metadata #4451 --- docs/src/content/docs/changelog/v0.34.4.md | 3 +++ src/metadata.cc | 2 +- 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/docs/src/content/docs/changelog/v0.34.4.md b/docs/src/content/docs/changelog/v0.34.4.md index d60b5270..8adf526b 100644 --- a/docs/src/content/docs/changelog/v0.34.4.md +++ b/docs/src/content/docs/changelog/v0.34.4.md @@ -16,6 +16,9 @@ slug: changelog/v0.34.4 * Ensure `unlimited` flag is passed upstream when reading TIFF images. [#4446](https://github.com/lovell/sharp/issues/4446) +* Support Electron memory cage when reading XMP metadata (regression in 0.34.3). + [#4451](https://github.com/lovell/sharp/issues/4451) + * Add sharp-libvips rpath for yarn v5 support. [#4452](https://github.com/lovell/sharp/pull/4452) [@arcanis](https://github.com/arcanis) diff --git a/src/metadata.cc b/src/metadata.cc index 70319910..788b7129 100644 --- a/src/metadata.cc +++ b/src/metadata.cc @@ -261,11 +261,11 @@ class MetadataWorker : public Napi::AsyncWorker { info.Set("iptc", Napi::Buffer::NewOrCopy(env, baton->iptc, baton->iptcLength, sharp::FreeCallback)); } if (baton->xmpLength > 0) { - info.Set("xmp", Napi::Buffer::NewOrCopy(env, baton->xmp, baton->xmpLength, sharp::FreeCallback)); if (g_utf8_validate(static_cast(baton->xmp), baton->xmpLength, nullptr)) { info.Set("xmpAsString", Napi::String::New(env, static_cast(baton->xmp), baton->xmpLength)); } + info.Set("xmp", Napi::Buffer::NewOrCopy(env, baton->xmp, baton->xmpLength, sharp::FreeCallback)); } if (baton->tifftagPhotoshopLength > 0) { info.Set("tifftagPhotoshop",