JDK-4755211 : Java2D font scaler has memory alignment bug in TrueType hinting code.
  • Type: Bug
  • Component: client-libs
  • Sub-Component: 2d
  • Affected Version: 1.4.0
  • Priority: P3
  • Status: Resolved
  • Resolution: Fixed
  • OS: solaris_7,solaris_8
  • CPU: sparc
  • Submitted: 2002-09-29
  • Updated: 2003-03-18
  • Resolved: 2002-10-16
The Version table provides details related to the release that this issue/RFE will be addressed.

Unresolved : Release in which this issue/RFE will be addressed.
Resolved: Release in which this issue/RFE has been resolved.
Fixed : Release in which this issue/RFE has been fixed. The release containing this fix may be available for download as an Early Access Release or a General Availability Release.

To download the current JDK release, click here.
Other Other
1.4.1_03 03Fixed 1.4.2Fixed
Related Reports
Duplicate :  
Relates :  
Description
This is once of the causes of bug 
4482430: Unexpected exception from NativeFontWrapper.registerFonts
Several fonts we have found trigger a specific problem in the rasteriser.

Comments
CONVERTED DATA BugTraq+ Release Management Values COMMIT TO FIX: 1.4.1_03 mantis FIXED IN: 1.4.1_03 mantis INTEGRATED IN: 1.4.1_03 mantis mantis-b04
14-06-2004

EVALUATION In the TT hinting code a buffer is allocated sufficient to hold several arrays of data which represent information about points and contours of a glyph outline. The arrays hold data of 1,2 and 4 byte quantities. Unfortunately the number of byte needed was calculated without any regard for address alignment requirements, and in particular an array of 4 byte data was right after an array of 1 byte data. Thus it was necessary to add the needed padding for this case. The code is inherently vulnerable to such things but it was sufficient to fix this one case. The structure is fnt_ElementType defined in Fnt.c GlyphOutline.c is where the storage is calculated (ComputeElementSizes) and SetElementPointers is the function which sets the pointers to locations within a buffer allocated to hold that amount of storage. ###@###.### 2002-09-29 ============================
29-09-2002