[Fontconfig] fontconfig: Branch 'master'

Akira TAGOH tagoh at kemper.freedesktop.org
Sun Jun 29 20:39:42 PDT 2014


 src/fccfg.c |   18 +++++++++++++++---
 src/fcxml.c |   23 ++++++++++++++++++++++-
 2 files changed, 37 insertions(+), 4 deletions(-)

New commits:
commit 5004e8e01f5de30ad01904e57ea0eda006ab3a0c
Author: Akira TAGOH <akira at tagoh.org>
Date:   Mon Jun 30 12:37:36 2014 +0900

    Don't read/write from/to the XDG dirs if the home directory is disabled

diff --git a/src/fccfg.c b/src/fccfg.c
index 8b62e52..73c45c8 100644
--- a/src/fccfg.c
+++ b/src/fccfg.c
@@ -2014,8 +2014,12 @@ FcConfigXdgCacheHome (void)
     else
     {
 	const FcChar8 *home = FcConfigHome ();
-	size_t len = home ? strlen ((const char *)home) : 0;
+	size_t len;
 
+	if (!home)
+	    return NULL;
+
+	len = strlen ((const char *)home);
 	ret = malloc (len + 7 + 1);
 	if (ret)
 	{
@@ -2039,8 +2043,12 @@ FcConfigXdgConfigHome (void)
     else
     {
 	const FcChar8 *home = FcConfigHome ();
-	size_t len = home ? strlen ((const char *)home) : 0;
+	size_t len;
+
+	if (!home)
+	    return NULL;
 
+	len = strlen ((const char *)home);
 	ret = malloc (len + 8 + 1);
 	if (ret)
 	{
@@ -2064,8 +2072,12 @@ FcConfigXdgDataHome (void)
     else
     {
 	const FcChar8 *home = FcConfigHome ();
-	size_t len = home ? strlen ((const char *)home) : 0;
+	size_t len;
+
+	if (!home)
+	    return NULL;
 
+	len = strlen ((const char *)home);
 	ret = malloc (len + 13 + 1);
 	if (ret)
 	{
diff --git a/src/fcxml.c b/src/fcxml.c
index 3dc1357..29dd4d6 100644
--- a/src/fcxml.c
+++ b/src/fcxml.c
@@ -2051,7 +2051,14 @@ FcParseDir (FcConfigParse *parse)
 
     attr = FcConfigGetAttribute (parse, "prefix");
     if (attr && FcStrCmp (attr, (const FcChar8 *)"xdg") == 0)
+    {
 	prefix = FcConfigXdgDataHome ();
+	/* home directory might be disabled.
+	 * simply ignore this element.
+	 */
+	if (!prefix)
+	    goto bail;
+    }
     data = FcStrBufDoneStatic (&parse->pstack->str);
     if (!data)
     {
@@ -2142,11 +2149,18 @@ static void
 FcParseCacheDir (FcConfigParse *parse)
 {
     const FcChar8 *attr;
-    FcChar8 *prefix = NULL, *p, *data;
+    FcChar8 *prefix = NULL, *p, *data = NULL;
 
     attr = FcConfigGetAttribute (parse, "prefix");
     if (attr && FcStrCmp (attr, (const FcChar8 *)"xdg") == 0)
+    {
 	prefix = FcConfigXdgCacheHome ();
+	/* home directory might be disabled.
+	 * simply ignore this element.
+	 */
+	if (!prefix)
+	    goto bail;
+    }
     data = FcStrBufDone (&parse->pstack->str);
     if (!data)
     {
@@ -2254,7 +2268,14 @@ FcParseInclude (FcConfigParse *parse)
         deprecated = FcTrue;
     attr = FcConfigGetAttribute (parse, "prefix");
     if (attr && FcStrCmp (attr, (const FcChar8 *)"xdg") == 0)
+    {
 	prefix = FcConfigXdgConfigHome ();
+	/* home directory might be disabled.
+	 * simply ignore this element.
+	 */
+	if (!prefix)
+	    goto bail;
+    }
     if (prefix)
     {
 	size_t plen = strlen ((const char *)prefix);


More information about the Fontconfig mailing list