commit:     67eefb25d66a312e6d4ecdf3ff6bb4c7f4847137
Author:     Sam James <sam <AT> gentoo <DOT> org>
AuthorDate: Fri Dec 16 02:16:12 2022 +0000
Commit:     Sam James <sam <AT> gentoo <DOT> org>
CommitDate: Fri Dec 16 02:52:04 2022 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=67eefb25

x11-misc/colord: backport lcms 2 fix

Closes: https://bugs.gentoo.org/880865
Signed-off-by: Sam James <sam <AT> gentoo.org>

 ...{colord-1.4.6.ebuild => colord-1.4.6-r1.ebuild} |  4 +++
 .../files/colord-1.4.6-lcms2-corruption.patch      | 33 ++++++++++++++++++++++
 2 files changed, 37 insertions(+)

diff --git a/x11-misc/colord/colord-1.4.6.ebuild 
b/x11-misc/colord/colord-1.4.6-r1.ebuild
similarity index 98%
rename from x11-misc/colord/colord-1.4.6.ebuild
rename to x11-misc/colord/colord-1.4.6-r1.ebuild
index 6b1521b25a0a..58918a6d770d 100644
--- a/x11-misc/colord/colord-1.4.6.ebuild
+++ b/x11-misc/colord/colord-1.4.6-r1.ebuild
@@ -57,6 +57,10 @@ BDEPEND="
        vala? ( $(vala_depend) )
 "
 
+PATCHES=(
+       "${FILESDIR}"/${P}-lcms2-corruption.patch
+)
+
 src_prepare() {
        default
        use vala && vala_src_prepare

diff --git a/x11-misc/colord/files/colord-1.4.6-lcms2-corruption.patch 
b/x11-misc/colord/files/colord-1.4.6-lcms2-corruption.patch
new file mode 100644
index 000000000000..4df6773cfb4b
--- /dev/null
+++ b/x11-misc/colord/files/colord-1.4.6-lcms2-corruption.patch
@@ -0,0 +1,33 @@
+https://bugs.gentoo.org/880865
+
+https://github.com/mm2/Little-CMS/issues/344
+https://github.com/hughsie/colord/issues/145
+
+https://github.com/hughsie/colord/commit/91a3cc2e994be587def3b70762f15461101d43a1
+
+From 91a3cc2e994be587def3b70762f15461101d43a1 Mon Sep 17 00:00:00 2001
+From: Sam James <s...@gentoo.org>
+Date: Tue, 15 Nov 2022 17:03:37 +0000
+Subject: [PATCH] lib: avoid destructing LCMS plugin twice with lcms 2.14
+
+lcms 2.14 contains a change to avoid a memory leak, but that change
+assumes correct API usage. It's not necessary to both cmsUnregisterPluginsTHR()
+and then cmsDeleteContext() -- we can just straight up delete the LCMS
+context instead (cmsDeleteContext()).
+
+So, follow upstream's suggestion & do that. This fixes memory corruption
+when building colord on x86, for example.
+
+Bug: https://github.com/mm2/Little-CMS/issues/344
+Fixes: https://github.com/hughsie/colord/issues/145
+Signed-off-by: Sam James <s...@gentoo.org>
+--- a/lib/colord/cd-context-lcms.c
++++ b/lib/colord/cd-context-lcms.c
+@@ -163,7 +163,6 @@ cd_context_lcms_free (gpointer ctx)
+       g_clear_error (error_ctx);
+       g_free (error_ctx);
+ 
+-      cmsUnregisterPluginsTHR (ctx);
+       cmsDeleteContext (ctx);
+ }
+ 

Reply via email to