From 40588c373bc7a9ccf4050e6c7d6aebf36e0507f9 Mon Sep 17 00:00:00 2001 From: Xi Ruoyao Date: Wed, 6 May 2026 15:39:30 +0800 Subject: [PATCH] recover the undocumented feature needed by colord (again) Use the fix suggested by the reporter of #542 instead of erroring out to bring back the undocumented feature required by colord. --- src/cmsio0.c | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/src/cmsio0.c b/src/cmsio0.c index d47b5f08..e41bbceb 100644 --- a/src/cmsio0.c +++ b/src/cmsio0.c @@ -214,10 +214,12 @@ cmsBool MemoryWrite(struct _cms_io_handler* iohandler, cmsUInt32Number size, con if (size == 0) return TRUE; // Write zero bytes is ok, but does nothing - // Check for available space. + // Check for available space. Truncate the output in case the space + // is not enough instead of erroring out. See + // https://github.com/hughsie/colord/issues/147. - if (size > ResData->Size || ResData->Pointer > (ResData->Size - size)) - goto WriteError; + if (size > ResData->Size - ResData->Pointer) + size = ResData->Size - ResData->Pointer; memmove(ResData ->Block + ResData ->Pointer, Ptr, size); ResData ->Pointer += size;