Fix memory leaks in FcFreeTypeQueryFace().
This commit is contained in:
		
							parent
							
								
									53a8100f3c
								
							
						
					
					
						commit
						a49dc69446
					
				
							
								
								
									
										69
									
								
								fontconfig-fix-memleak.patch
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										69
									
								
								fontconfig-fix-memleak.patch
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,69 @@ | ||||
| From a61e145304da86c8c35b137493bbd8fd5dd1e7f5 Mon Sep 17 00:00:00 2001 | ||||
| From: Akira TAGOH <akira@tagoh.org> | ||||
| Date: Mon, 9 Sep 2013 19:59:31 +0900 | ||||
| Subject: [PATCH] Fix memory leaks in FcFreeTypeQueryFace | ||||
| 
 | ||||
| ---
 | ||||
|  src/fcfreetype.c | 15 ++++++++++----- | ||||
|  1 file changed, 10 insertions(+), 5 deletions(-) | ||||
| 
 | ||||
| diff --git a/src/fcfreetype.c b/src/fcfreetype.c
 | ||||
| index 02e85cb..e394307 100644
 | ||||
| --- a/src/fcfreetype.c
 | ||||
| +++ b/src/fcfreetype.c
 | ||||
| @@ -1105,7 +1105,6 @@ FcFreeTypeQueryFace (const FT_Face  face,
 | ||||
|      const char	    *tmp; | ||||
|   | ||||
|      FcChar8	    *hashstr = NULL; | ||||
| -    char	    *fontdata = NULL;
 | ||||
|      FT_Error	    err; | ||||
|      FT_ULong	    len = 0, alen; | ||||
|   | ||||
| @@ -1668,15 +1667,21 @@ FcFreeTypeQueryFace (const FT_Face  face,
 | ||||
|      err = FT_Load_Sfnt_Table (face, 0, 0, NULL, &len); | ||||
|      if (err == FT_Err_Ok) | ||||
|      { | ||||
| +	char *fontdata;
 | ||||
| +
 | ||||
|  	alen = (len + 63) & ~63; | ||||
|  	fontdata = malloc (alen); | ||||
|  	if (!fontdata) | ||||
|  	    goto bail3; | ||||
|  	err = FT_Load_Sfnt_Table (face, 0, 0, (FT_Byte *)fontdata, &len); | ||||
|  	if (err != FT_Err_Ok) | ||||
| +	{
 | ||||
| +	    free (fontdata);
 | ||||
|  	    goto bail3; | ||||
| +	}
 | ||||
|  	memset (&fontdata[len], 0, alen - len); | ||||
|  	hashstr = FcHashGetSHA256DigestFromMemory (fontdata, len); | ||||
| +	free (fontdata);
 | ||||
|      } | ||||
|      else if (err == FT_Err_Invalid_Face_Handle) | ||||
|      { | ||||
| @@ -1692,7 +1697,11 @@ FcFreeTypeQueryFace (const FT_Face  face,
 | ||||
|      if (hashstr) | ||||
|      { | ||||
|  	if (!FcPatternAddString (pat, FC_HASH, hashstr)) | ||||
| +	{
 | ||||
| +	    free (hashstr);
 | ||||
|  	    goto bail1; | ||||
| +	}
 | ||||
| +	free (hashstr);
 | ||||
|      } | ||||
|  bail3: | ||||
|   | ||||
| @@ -1783,10 +1792,6 @@ bail3:
 | ||||
|  bail2: | ||||
|      FcCharSetDestroy (cs); | ||||
|  bail1: | ||||
| -    if (hashstr)
 | ||||
| -	free (hashstr);
 | ||||
| -    if (fontdata)
 | ||||
| -	free (fontdata);
 | ||||
|      FcPatternDestroy (pat); | ||||
|  bail0: | ||||
|      return NULL; | ||||
| -- 
 | ||||
| 1.8.3.1 | ||||
| 
 | ||||
| @ -3,7 +3,7 @@ | ||||
| Summary:	Font configuration and customization library | ||||
| Name:		fontconfig | ||||
| Version:	2.10.95 | ||||
| Release:	3%{?dist} | ||||
| Release:	4%{?dist} | ||||
| # src/ftglue.[ch] is in Public Domain | ||||
| # src/fccache.c contains Public Domain code | ||||
| # fc-case/CaseFolding.txt is in the UCD | ||||
| @ -17,6 +17,7 @@ Source1:	25-no-bitmap-fedora.conf | ||||
| # https://bugzilla.redhat.com/show_bug.cgi?id=140335 | ||||
| Patch0:		fontconfig-2.8.0-sleep-less.patch | ||||
| Patch1:		fontconfig-no-dir-when-no-conf.patch | ||||
| Patch2:		fontconfig-fix-memleak.patch | ||||
| 
 | ||||
| BuildRequires:	expat-devel | ||||
| BuildRequires:	freetype-devel >= %{freetype_version} | ||||
| @ -59,6 +60,7 @@ which is useful for developing applications that uses fontconfig. | ||||
| %setup -q | ||||
| %patch0 -p1 -b .sleep-less | ||||
| %patch1 -p1 -b .nodir | ||||
| %patch2 -p1 -b .memleak | ||||
| 
 | ||||
| %build | ||||
| # We don't want to rebuild the docs, but we want to install the included ones. | ||||
| @ -135,6 +137,9 @@ fi | ||||
| %doc fontconfig-devel.txt fontconfig-devel | ||||
| 
 | ||||
| %changelog | ||||
| * Fri Sep 13 2013 Akira TAGOH <tagoh@redhat.com> - 2.10.95-4 | ||||
| - Fix memory leaks in FcFreeTypeQueryFace(). | ||||
| 
 | ||||
| * Mon Sep  2 2013 Akira TAGOH <tagoh@redhat.com> - 2.10.95-3 | ||||
| - Do not create a directory for migration when no old config file and directory. | ||||
|   (#1003495) | ||||
|  | ||||
		Loading…
	
		Reference in New Issue
	
	Block a user