aboutsummaryrefslogtreecommitdiff
path: root/fontconfig/src/fcxml.c
diff options
context:
space:
mode:
Diffstat (limited to 'fontconfig/src/fcxml.c')
-rw-r--r--fontconfig/src/fcxml.c12
1 files changed, 8 insertions, 4 deletions
diff --git a/fontconfig/src/fcxml.c b/fontconfig/src/fcxml.c
index d92cbcc66..799352e6f 100644
--- a/fontconfig/src/fcxml.c
+++ b/fontconfig/src/fcxml.c
@@ -1847,7 +1847,11 @@ FcParseUnary (FcConfigParse *parse, FcOp op)
static void
FcParseDir (FcConfigParse *parse)
{
- const FcChar8 *attr, *data;
+#ifdef _WIN32
+ FcChar8 buffer[MAX_PATH];
+#endif
+ const FcChar8 *attr;
+ FcChar8 *data;
FcChar8 *prefix = NULL;
attr = FcConfigGetAttribute (parse, "prefix");
@@ -1883,7 +1887,7 @@ FcParseDir (FcConfigParse *parse)
if (!GetModuleFileName (NULL, buffer, sizeof (buffer) - 20))
{
FcConfigMessage (parse, FcSevereError, "GetModuleFileName failed");
- break;
+ goto bail;
}
/*
* Must use the multi-byte aware function to search
@@ -1902,7 +1906,7 @@ FcParseDir (FcConfigParse *parse)
if (!GetModuleFileName (NULL, buffer, sizeof (buffer) - 20))
{
FcConfigMessage (parse, FcSevereError, "GetModuleFileName failed");
- break;
+ goto bail;
}
p = _mbsrchr (data, '\\');
if (p) *p = '\0';
@@ -1916,7 +1920,7 @@ FcParseDir (FcConfigParse *parse)
if (rc == 0 || rc > sizeof (buffer) - 20)
{
FcConfigMessage (parse, FcSevereError, "GetSystemWindowsDirectory failed");
- break;
+ goto bail;
}
if (data [strlen (data) - 1] != '\\')
strcat (data, "\\");