summaryrefslogtreecommitdiffstats
path: root/source/x/fontconfig/fedora-patches/fontconfig-fix-1744377.patch
diff options
context:
space:
mode:
author Patrick J Volkerding <volkerdi@slackware.com>2020-12-01 20:18:01 +0000
committer Eric Hameleers <alien@slackware.com>2020-12-02 08:59:56 +0100
commitca24bdf2171b8756a322c99932f890bd69bcd86c (patch)
treec6c12f115015487c56365781e95395896227e44f /source/x/fontconfig/fedora-patches/fontconfig-fix-1744377.patch
parent153bd14cd07b76eca2248eb2224a5038969c474d (diff)
downloadcurrent-ca24bdf2171b8756a322c99932f890bd69bcd86c.tar.gz
current-ca24bdf2171b8756a322c99932f890bd69bcd86c.tar.xz
Tue Dec 1 20:18:01 UTC 202020201201201801
a/hwdata-0.342-noarch-1.txz: Upgraded. a/pam-1.5.1-x86_64-1.txz: Upgraded. ap/sqlite-3.34.0-x86_64-1.txz: Upgraded. l/libarchive-3.5.0-x86_64-1.txz: Upgraded. x/fontconfig-2.13.92-x86_64-1.txz: Upgraded. I'm pretty sure there was a good reason to switch to 2.13.92 on the devel release path, but I'm not sure the same can be said about 2.13.93. We'll stick with this one for now until there's a stable release or another good reason to bump it. x/xorg-server-1.20.10-x86_64-1.txz: Upgraded. x/xorg-server-xephyr-1.20.10-x86_64-1.txz: Upgraded. x/xorg-server-xnest-1.20.10-x86_64-1.txz: Upgraded. x/xorg-server-xvfb-1.20.10-x86_64-1.txz: Upgraded. x/xorg-server-xwayland-1.20.10-x86_64-1.txz: Upgraded. xap/gnuplot-5.4.1-x86_64-1.txz: Upgraded.
Diffstat (limited to '')
-rw-r--r--source/x/fontconfig/fedora-patches/fontconfig-fix-1744377.patch122
1 files changed, 122 insertions, 0 deletions
diff --git a/source/x/fontconfig/fedora-patches/fontconfig-fix-1744377.patch b/source/x/fontconfig/fedora-patches/fontconfig-fix-1744377.patch
new file mode 100644
index 000000000..fda5c2d65
--- /dev/null
+++ b/source/x/fontconfig/fedora-patches/fontconfig-fix-1744377.patch
@@ -0,0 +1,122 @@
+From fcada522913e5e07efa6367eff87ace9f06d24c8 Mon Sep 17 00:00:00 2001
+From: Akira TAGOH <akira@tagoh.org>
+Date: Wed, 28 Aug 2019 17:46:03 +0900
+Subject: [PATCH] Do not return FcFalse from FcConfigParseAndLoad*() if
+ complain is set to false
+
+https://bugzilla.redhat.com/show_bug.cgi?id=1744377
+---
+ src/fcxml.c | 8 ++++---
+ test/Makefile.am | 4 ++++
+ test/test-bz1744377.c | 51 +++++++++++++++++++++++++++++++++++++++++++
+ 3 files changed, 60 insertions(+), 3 deletions(-)
+ create mode 100644 test/test-bz1744377.c
+
+diff --git a/src/fcxml.c b/src/fcxml.c
+index 2e26e77a..076fa301 100644
+--- a/src/fcxml.c
++++ b/src/fcxml.c
+@@ -3526,7 +3526,7 @@ _FcConfigParse (FcConfig *config,
+ int len;
+ FcStrBuf sbuf;
+ char buf[BUFSIZ];
+- FcBool ret = FcFalse;
++ FcBool ret = FcFalse, complain_again = complain;
+
+ #ifdef _WIN32
+ if (!pGetSystemWindowsDirectory)
+@@ -3605,7 +3605,7 @@ _FcConfigParse (FcConfig *config,
+ close (fd);
+
+ ret = FcConfigParseAndLoadFromMemoryInternal (config, filename, FcStrBufDoneStatic (&sbuf), complain, load);
+- complain = FcFalse; /* no need to reclaim here */
++ complain_again = FcFalse; /* no need to reclaim here */
+ bail1:
+ FcStrBufDestroy (&sbuf);
+ bail0:
+@@ -3613,7 +3613,9 @@ bail0:
+ FcStrFree (filename);
+ if (realfilename)
+ FcStrFree (realfilename);
+- if (!ret && complain)
++ if (!complain)
++ return FcTrue;
++ if (!ret && complain_again)
+ {
+ if (name)
+ FcConfigMessage (0, FcSevereError, "Cannot %s config file \"%s\"", load ? "load" : "scan", name);
+diff --git a/test/Makefile.am b/test/Makefile.am
+index f9c21581..a9fa089a 100644
+--- a/test/Makefile.am
++++ b/test/Makefile.am
+@@ -131,6 +131,10 @@ TESTS += test-d1f48f11
+ endif
+ endif
+
++check_PROGRAMS += test-bz1744377
++test_bz1744377_LDADD = $(top_builddir)/src/libfontconfig.la
++TESTS += test-bz1744377
++
+ EXTRA_DIST=run-test.sh run-test-conf.sh $(LOG_COMPILER) $(TESTDATA) out.expected-long-family-names out.expected-no-long-family-names
+
+ CLEANFILES=out out1 out2 fonts.conf out.expected
+diff --git a/test/test-bz1744377.c b/test/test-bz1744377.c
+new file mode 100644
+index 00000000..d7f10535
+--- /dev/null
++++ b/test/test-bz1744377.c
+@@ -0,0 +1,51 @@
++/*
++ * fontconfig/test/test-bz1744377.c
++ *
++ * Copyright © 2000 Keith Packard
++ *
++ * Permission to use, copy, modify, distribute, and sell this software and its
++ * documentation for any purpose is hereby granted without fee, provided that
++ * the above copyright notice appear in all copies and that both that
++ * copyright notice and this permission notice appear in supporting
++ * documentation, and that the name of the author(s) not be used in
++ * advertising or publicity pertaining to distribution of the software without
++ * specific, written prior permission. The authors make no
++ * representations about the suitability of this software for any purpose. It
++ * is provided "as is" without express or implied warranty.
++ *
++ * THE AUTHOR(S) DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
++ * INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
++ * EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY SPECIAL, INDIRECT OR
++ * CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
++ * DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
++ * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
++ * PERFORMANCE OF THIS SOFTWARE.
++ */
++#include <fontconfig/fontconfig.h>
++
++int
++main (void)
++{
++ const FcChar8 *doc = ""
++ "<fontconfig>\n"
++ " <include ignore_missing=\"yes\">blahblahblah</include>\n"
++ "</fontconfig>\n"
++ "";
++ const FcChar8 *doc2 = ""
++ "<fontconfig>\n"
++ " <include ignore_missing=\"no\">blahblahblah</include>\n"
++ "</fontconfig>\n"
++ "";
++ FcConfig *cfg = FcConfigCreate ();
++
++ if (!FcConfigParseAndLoadFromMemory (cfg, doc, FcTrue))
++ return 1;
++ if (FcConfigParseAndLoadFromMemory (cfg, doc2, FcTrue))
++ return 1;
++ if (!FcConfigParseAndLoadFromMemory (cfg, doc2, FcFalse))
++ return 1;
++
++ FcConfigDestroy (cfg);
++
++ return 0;
++}
+--
+2.23.0
+