diff options
Diffstat (limited to 'fontconfig/src/fcxml.c')
| -rw-r--r-- | fontconfig/src/fcxml.c | 11 | 
1 files changed, 9 insertions, 2 deletions
| diff --git a/fontconfig/src/fcxml.c b/fontconfig/src/fcxml.c index 799352e6f..343208617 100644 --- a/fontconfig/src/fcxml.c +++ b/fontconfig/src/fcxml.c @@ -1359,6 +1359,7 @@ FcParseRange (FcConfigParse *parse)  	    break;  	default:  	    FcConfigMessage (parse, FcSevereError, "invalid element in range"); +	    n = 0;  	    break;  	}  	if (count == 1) @@ -1868,12 +1869,14 @@ FcParseDir (FcConfigParse *parse)  	size_t plen = strlen ((const char *)prefix);  	size_t dlen = strlen ((const char *)data); +	FcMemFree (FC_MEM_STRING, plen + 1);  	prefix = realloc (prefix, plen + 1 + dlen + 1);  	if (!prefix)  	{  	    FcConfigMessage (parse, FcSevereError, "out of memory");  	    goto bail;  	} +	FcMemAlloc (FC_MEM_STRING, plen + 1 + dlen + 1);  	prefix[plen] = FC_DIR_SEPARATOR;  	memcpy (&prefix[plen + 1], data, dlen);  	prefix[plen + 1 + dlen] = 0; @@ -1938,7 +1941,7 @@ FcParseDir (FcConfigParse *parse)    bail:      if (prefix) -	free (prefix); +	FcStrFree (prefix);  }  static void @@ -1961,12 +1964,14 @@ FcParseCacheDir (FcConfigParse *parse)  	size_t plen = strlen ((const char *)prefix);  	size_t dlen = strlen ((const char *)data); +	FcMemFree (FC_MEM_STRING, plen + 1);  	prefix = realloc (prefix, plen + 1 + dlen + 1);  	if (!prefix)  	{  	    FcConfigMessage (parse, FcSevereError, "out of memory");  	    goto bail;  	} +	FcMemAlloc (FC_MEM_STRING, plen + 1 + dlen + 1);  	prefix[plen] = FC_DIR_SEPARATOR;  	memcpy (&prefix[plen + 1], data, dlen);  	prefix[plen + 1 + dlen] = 0; @@ -2057,12 +2062,14 @@ FcParseInclude (FcConfigParse *parse)  	size_t plen = strlen ((const char *)prefix);  	size_t dlen = strlen ((const char *)s); +	FcMemFree (FC_MEM_STRING, plen + 1);  	prefix = realloc (prefix, plen + 1 + dlen + 1);  	if (!prefix)  	{  	    FcConfigMessage (parse, FcSevereError, "out of memory");  	    goto bail;  	} +	FcMemAlloc (FC_MEM_STRING, plen + 1 + dlen + 1);  	prefix[plen] = FC_DIR_SEPARATOR;  	memcpy (&prefix[plen + 1], s, dlen);  	prefix[plen + 1 + dlen] = 0; @@ -2080,7 +2087,7 @@ FcParseInclude (FcConfigParse *parse)    bail:      if (prefix) -	free (prefix); +	FcStrFree (prefix);  }  typedef struct _FcOpMap { | 
