cvs: gd /libgd/src gdft.c
| From: | Takeshi Abe | Date: | Wed, 15 Apr 2009 17:24:45 +0000 |
| Subject: | cvs: gd /libgd/src gdft.c | ||
| Groups: | php.gd.cvs | ||
| Request: | Send a blank email to php-gd-cvs+get-607@lists.php.net to get a copy of this message | ||
tabe Wed Apr 15 17:24:45 2009 UTC
Modified files:
/gd/libgd/src gdft.c
Log:
decrement the pattern reference count in case of failure.
http://cvs.php.net/viewvc.cgi/gd/libgd/src/gdft.c?r1=1.40&r2=1.41&diff_format=u
Index: gd/libgd/src/gdft.c
diff -u gd/libgd/src/gdft.c:1.40 gd/libgd/src/gdft.c:1.41
--- gd/libgd/src/gdft.c:1.40 Wed Apr 15 16:19:15 2009
+++ gd/libgd/src/gdft.c Wed Apr 15 17:24:45 2009
@@ -1517,8 +1517,12 @@
font = find_font(pattern);
FcPatternDestroy(pattern);
- if (!font || FcPatternGetString(font, FC_FAMILY, 0, &family) != FcResultMatch)
- return "fontconfig: Couldn't retrieve font family name.";
+ if (!font)
+ return "fontconfig: Couldn't find font.";
+ if (FcPatternGetString(font, FC_FAMILY, 0, &family) != FcResultMatch) {
+ FcPatternDestroy(font);
+ return "fontconfig: Couldn't retrieve font family name.";
+ }
/* Check whether we got the font family we wanted. */
if (strcmp((const char *)family, postscript_alias[i].family) != 0) {
@@ -1558,8 +1562,12 @@
}
#endif
- if (!font || FcPatternGetString(font, FC_FILE, 0, &file) != FcResultMatch)
+ if (!font)
+ return "fontconfig: Couldn't find font.";
+ if (FcPatternGetString(font, FC_FILE, 0, &file) != FcResultMatch) {
+ FcPatternDestroy(font);
return "fontconfig: Couldn't retrieve font file name.";
+ }
*fontpath = strdup((const char *)file);