svn commit: r416952 - in head/java/openjdk8: . files

Greg Lewis glewis at FreeBSD.org
Thu Jun 16 06:24:35 UTC 2016


Author: glewis
Date: Thu Jun 16 06:24:34 2016
New Revision: 416952
URL: https://svnweb.freebsd.org/changeset/ports/416952

Log:
  . Fix a double free bug.  This is pulled from upstream.
  . Bump PORTREVISION.
  
  PR:		210226
  Submitted by:	girgen@

Added:
  head/java/openjdk8/files/patch-jdk-src-share-native-sun-font-freetypeScaler.c   (contents, props changed)
Modified:
  head/java/openjdk8/Makefile

Modified: head/java/openjdk8/Makefile
==============================================================================
--- head/java/openjdk8/Makefile	Thu Jun 16 06:00:06 2016	(r416951)
+++ head/java/openjdk8/Makefile	Thu Jun 16 06:24:34 2016	(r416952)
@@ -2,7 +2,7 @@
 
 PORTNAME=	openjdk
 PORTVERSION=	${JDK_MAJOR_VERSION}.${JDK_UPDATE_VERSION}.${JDK_BUILD_NUMBER:S/^0//}
-PORTREVISION=	2
+PORTREVISION=	3
 CATEGORIES=	java devel
 MASTER_SITES=	http://download.java.net/openjdk/jdk${JDK_MAJOR_VERSION}/promoted/b${DIST_BUILD_NUMBER}/:jdk \
 		https://adopt-openjdk.ci.cloudbees.com/job/jtreg/${JTREG_JENKINS_BUILD}/artifact/:jtreg \

Added: head/java/openjdk8/files/patch-jdk-src-share-native-sun-font-freetypeScaler.c
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/java/openjdk8/files/patch-jdk-src-share-native-sun-font-freetypeScaler.c	Thu Jun 16 06:24:34 2016	(r416952)
@@ -0,0 +1,52 @@
+--- jdk/src/share/native/sun/font/freetypeScaler.c
++++ jdk/src/share/native/sun/font/freetypeScaler.c
+@@ -60,6 +60,7 @@
+     JNIEnv* env;
+     FT_Library library;
+     FT_Face face;
++    FT_Stream faceStream;
+     jobject font2D;
+     jobject directBuffer;
+ 
+@@ -107,15 +108,10 @@
+     if (scalerInfo == NULL)
+         return;
+ 
+-    //apparently Done_Face will only close the stream
+-    // but will not relase the memory of stream structure.
+-    // We need to free it explicitly to avoid leak.
+-    //Direct access to the stream field might be not ideal solution as
+-    // it is considred to be "private".
+-    //Alternatively we could have stored pointer to the structure
+-    // in the scalerInfo but this will increase size of the structure
+-    // for no good reason
+-    stream = scalerInfo->face->stream;
++    // FT_Done_Face always closes the stream, but only frees the memory
++    // of the data structure if it was internally allocated by FT.
++    // We hold on to a pointer to the stream structure if we provide it
++    // ourselves, so that we can free it here.
+ 
+     FT_Done_Face(scalerInfo->face);
+     FT_Done_FreeType(scalerInfo->library);
+@@ -128,8 +124,8 @@
+         free(scalerInfo->fontData);
+     }
+ 
+-   if (stream != NULL) {
+-        free(stream);
++   if (scalerInfo->faceStream != NULL) {
++        free(scalerInfo->faceStream);
+    }
+ 
+     free(scalerInfo);
+@@ -302,6 +298,10 @@
+                                          &ft_open_args,
+                                          indexInCollection,
+                                          &scalerInfo->face);
++
++                    if (!error) {
++                        scalerInfo->faceStream = ftstream;
++                    }
+                 }
+                 if (error || scalerInfo->directBuffer == NULL) {
+                     free(ftstream);


More information about the svn-ports-head mailing list