rpms/java-1.6.0-openjdk/EL-5 java-1.6.0-openjdk-lcms.patch, NONE, 1.1 java-1.6.0-openjdk-securitypatches.patch, NONE, 1.1 java-1.6.0-openjdk.spec, 1.34, 1.35

Lubomir Rintel lkundrak at fedoraproject.org
Mon May 4 19:01:26 UTC 2009


Author: lkundrak

Update of /cvs/pkgs/rpms/java-1.6.0-openjdk/EL-5
In directory cvs1.fedora.phx.redhat.com:/tmp/cvs-serv5990

Modified Files:
	java-1.6.0-openjdk.spec 
Added Files:
	java-1.6.0-openjdk-lcms.patch 
	java-1.6.0-openjdk-securitypatches.patch 
Log Message:
* Mon May 4 2009 Lubomir Rintel <lkundrak at v3.sk> - 1:1.6.0.0-1.0.b12.3
- Post-mortem update with security patches work around RHEL packaging bug


java-1.6.0-openjdk-lcms.patch:

--- NEW FILE java-1.6.0-openjdk-lcms.patch ---
diff -ruN openjdkold/jdk/src/share/native/sun/java2d/cmm/lcms/cmscam02.c openjdk/jdk/src/share/native/sun/java2d/cmm/lcms/cmscam02.c
--- openjdkold/jdk/src/share/native/sun/java2d/cmm/lcms/cmscam02.c	2008-11-25 04:06:03.000000000 -0500
+++ openjdk/jdk/src/share/native/sun/java2d/cmm/lcms/cmscam02.c	2009-04-03 13:42:46.000000000 -0400
@@ -29,7 +29,7 @@
 //
 //
 //  Little cms
-//  Copyright (C) 1998-2006 Marti Maria
+//  Copyright (C) 1998-2007 Marti Maria
 //
 // Permission is hereby granted, free of charge, to any person obtaining
 // a copy of this software and associated documentation files (the "Software"),
@@ -51,7 +51,7 @@
 
 
 
-// CIECAM 02 appearance model
+// CIECAM 02 appearance model. Many thanks to Jordi Vilar for the debugging.
 
 #include "lcms.h"
 
@@ -196,6 +196,10 @@
             clr.RGBpa[i] = (400.0 * temp) / (temp + 27.13) + 0.1;
         }
     }
+    
+    clr.A = (((2.0 * clr.RGBpa[0]) + clr.RGBpa[1] + 
+        (clr.RGBpa[2] / 20.0)) - 0.305) * pMod->Nbb;
+
     return clr;
 }
 
@@ -249,9 +253,6 @@
         clr.H = 300 + ((100*((clr.h - 237.53)/1.2)) / temp);
     }
 
-    clr.A = (((2.0 * clr.RGBpa[0]) + clr.RGBpa[1] +
-        (clr.RGBpa[2] / 20.0)) - 0.305) * pMod->Nbb;
-
     clr.J = 100.0 * pow((clr.A / pMod->adoptedWhite.A),
         (pMod->c * pMod->z));
 
@@ -395,7 +396,7 @@
     LPcmsCIECAM02 lpMod;
 
 
-   if((lpMod = (LPcmsCIECAM02) malloc(sizeof(cmsCIECAM02))) == NULL) {
+   if((lpMod = (LPcmsCIECAM02) _cmsMalloc(sizeof(cmsCIECAM02))) == NULL) {
         return (LCMSHANDLE) NULL;
     }
 
@@ -449,14 +450,19 @@
     lpMod -> z   = compute_z(lpMod);
     lpMod -> Nbb = computeNbb(lpMod);
     lpMod -> FL  = computeFL(lpMod);
+    
+    if (lpMod -> D == D_CALCULATE ||
+        lpMod -> D == D_CALCULATE_DISCOUNT) {
+
     lpMod -> D   = computeD(lpMod);
+    }
+    
     lpMod -> Ncb = lpMod -> Nbb;
 
     lpMod -> adoptedWhite = XYZtoCAT02(lpMod -> adoptedWhite);
     lpMod -> adoptedWhite = ChromaticAdaptation(lpMod -> adoptedWhite, lpMod);
     lpMod -> adoptedWhite = CAT02toHPE(lpMod -> adoptedWhite);
     lpMod -> adoptedWhite = NonlinearCompression(lpMod -> adoptedWhite, lpMod);
-    lpMod -> adoptedWhite = ComputeCorrelates(lpMod -> adoptedWhite, lpMod);
 
     return (LCMSHANDLE) lpMod;
 
@@ -465,7 +471,7 @@
 void LCMSEXPORT cmsCIECAM02Done(LCMSHANDLE hModel)
 {
     LPcmsCIECAM02 lpMod = (LPcmsCIECAM02) (LPSTR) hModel;
-    if (lpMod) free(lpMod);
+    if (lpMod) _cmsFree(lpMod);
 }
 
 
diff -ruN openjdkold/jdk/src/share/native/sun/java2d/cmm/lcms/cmscam97.c openjdk/jdk/src/share/native/sun/java2d/cmm/lcms/cmscam97.c
--- openjdkold/jdk/src/share/native/sun/java2d/cmm/lcms/cmscam97.c	2008-11-25 04:06:03.000000000 -0500
+++ openjdk/jdk/src/share/native/sun/java2d/cmm/lcms/cmscam97.c	2009-04-03 13:42:46.000000000 -0400
@@ -29,7 +29,7 @@
 //
 //
 //  Little cms
-//  Copyright (C) 1998-2006 Marti Maria
+//  Copyright (C) 1998-2007 Marti Maria
 //
 // Permission is hereby granted, free of charge, to any person obtaining
 // a copy of this software and associated documentation files (the "Software"),
@@ -174,7 +174,7 @@
 LCMSAPI void LCMSEXPORT cmsCIECAM97sDone(LCMSHANDLE hModel)
 {
     LPcmsCIECAM97s lpMod = (LPcmsCIECAM97s) (LPSTR) hModel;
-    if (lpMod) free(lpMod);
+    if (lpMod) _cmsFree(lpMod);
 }
 
 // Partial discounting for adaptation degree computation
@@ -331,7 +331,7 @@
     LPcmsCIECAM97s lpMod;
     VEC3 tmp;
 
-    if((lpMod = (LPcmsCIECAM97s) malloc(sizeof(cmsCIECAM97s))) == NULL) {
+    if((lpMod = (LPcmsCIECAM97s) _cmsMalloc(sizeof(cmsCIECAM97s))) == NULL) {
         return (LCMSHANDLE) NULL;
     }
 
@@ -449,7 +449,7 @@
 
     // RGB_subw = [MlamRigg][WP/YWp]
 #ifdef USE_CIECAM97s2
-    MAT3eval(&lpMod -> RGB_subw, &lpMod -> MlamRigg, (LPVEC3) &lpMod -> WP);
+    MAT3eval(&lpMod -> RGB_subw, &lpMod -> MlamRigg, &lpMod -> WP);
 #else
     VEC3divK(&tmp, (LPVEC3) &lpMod -> WP, lpMod->WP.Y);
     MAT3eval(&lpMod -> RGB_subw, &lpMod -> MlamRigg, &tmp);
diff -ruN openjdkold/jdk/src/share/native/sun/java2d/cmm/lcms/cmscgats.c openjdk/jdk/src/share/native/sun/java2d/cmm/lcms/cmscgats.c
--- openjdkold/jdk/src/share/native/sun/java2d/cmm/lcms/cmscgats.c	2008-11-25 04:06:03.000000000 -0500
+++ openjdk/jdk/src/share/native/sun/java2d/cmm/lcms/cmscgats.c	2009-04-03 13:42:46.000000000 -0400
@@ -29,7 +29,7 @@
 //
 //
 //  Little cms
-//  Copyright (C) 1998-2006 Marti Maria
+//  Copyright (C) 1998-2007 Marti Maria
 //
 // Permission is hereby granted, free of charge, to any person obtaining
 // a copy of this software and associated documentation files (the "Software"),
@@ -65,22 +65,25 @@
 // Persistence
 LCMSAPI LCMSHANDLE      LCMSEXPORT cmsIT8LoadFromFile(const char* cFileName);
 LCMSAPI LCMSHANDLE      LCMSEXPORT cmsIT8LoadFromMem(void *Ptr, size_t len);
-LCMSAPI BOOL            LCMSEXPORT cmsIT8SaveToFile(LCMSHANDLE IT8, const char* cFileName);
+LCMSAPI LCMSBOOL        LCMSEXPORT cmsIT8SaveToFile(LCMSHANDLE IT8, const char* cFileName);
 
 // Properties
 LCMSAPI const char*     LCMSEXPORT cmsIT8GetSheetType(LCMSHANDLE hIT8);
-LCMSAPI BOOL            LCMSEXPORT cmsIT8SetSheetType(LCMSHANDLE hIT8, const char* Type);
+LCMSAPI LCMSBOOL        LCMSEXPORT cmsIT8SetSheetType(LCMSHANDLE hIT8, const char* Type);
 
-LCMSAPI BOOL            LCMSEXPORT cmsIT8SetComment(LCMSHANDLE hIT8, const char* cComment);
+LCMSAPI LCMSBOOL        LCMSEXPORT cmsIT8SetComment(LCMSHANDLE hIT8, const char* cComment);
 
-LCMSAPI BOOL            LCMSEXPORT cmsIT8SetPropertyStr(LCMSHANDLE hIT8, const char* cProp, const char *Str);
-LCMSAPI BOOL            LCMSEXPORT cmsIT8SetPropertyDbl(LCMSHANDLE hIT8, const char* cProp, double Val);
-LCMSAPI BOOL            LCMSEXPORT cmsIT8SetPropertyHex(LCMSHANDLE hIT8, const char* cProp, int Val);
-LCMSAPI BOOL            LCMSEXPORT cmsIT8SetPropertyUncooked(LCMSHANDLE hIT8, const char* Key, const char* Buffer);
+LCMSAPI LCMSBOOL        LCMSEXPORT cmsIT8SetPropertyStr(LCMSHANDLE hIT8, const char* cProp, const char *Str);
+LCMSAPI LCMSBOOL        LCMSEXPORT cmsIT8SetPropertyDbl(LCMSHANDLE hIT8, const char* cProp, double Val);
+LCMSAPI LCMSBOOL        LCMSEXPORT cmsIT8SetPropertyHex(LCMSHANDLE hIT8, const char* cProp, int Val);
+LCMSAPI LCMSBOOL        LCMSEXPORT cmsIT8SetPropertyMulti(LCMSHANDLE hIT8, const char* cProp, const char* cSubProp, const char *Val);
+LCMSAPI LCMSBOOL        LCMSEXPORT cmsIT8SetPropertyUncooked(LCMSHANDLE hIT8, const char* Key, const char* Buffer);
 
 LCMSAPI const char*     LCMSEXPORT cmsIT8GetProperty(LCMSHANDLE hIT8, const char* cProp);
 LCMSAPI double          LCMSEXPORT cmsIT8GetPropertyDbl(LCMSHANDLE hIT8, const char* cProp);
-LCMSAPI int             LCMSEXPORT cmsIT8EnumProperties(LCMSHANDLE IT8, char ***PropertyNames);
+LCMSAPI const char*     LCMSEXPORT cmsIT8GetPropertyMulti(LCMSHANDLE hIT8, const char* cProp, const char *cSubProp);
+LCMSAPI int             LCMSEXPORT cmsIT8EnumProperties(LCMSHANDLE IT8, const char ***PropertyNames);
+LCMSAPI int             LCMSEXPORT cmsIT8EnumPropertyMulti(LCMSHANDLE hIT8, const char* cProp, const char*** SubpropertyNames);
 
 // Datasets
 
@@ -89,10 +92,10 @@
 LCMSAPI const char*     LCMSEXPORT cmsIT8GetDataRowCol(LCMSHANDLE IT8, int row, int col);
 LCMSAPI double          LCMSEXPORT cmsIT8GetDataRowColDbl(LCMSHANDLE IT8, int col, int row);
 
-LCMSAPI BOOL            LCMSEXPORT cmsIT8SetDataRowCol(LCMSHANDLE hIT8, int row, int col,
+LCMSAPI LCMSBOOL        LCMSEXPORT cmsIT8SetDataRowCol(LCMSHANDLE hIT8, int row, int col, 
                                                 const char* Val);
 
-LCMSAPI BOOL            LCMSEXPORT cmsIT8SetDataRowColDbl(LCMSHANDLE hIT8, int row, int col,
+LCMSAPI LCMSBOOL        LCMSEXPORT cmsIT8SetDataRowColDbl(LCMSHANDLE hIT8, int row, int col, 
                                                 double Val);
 
 LCMSAPI const char*     LCMSEXPORT cmsIT8GetData(LCMSHANDLE IT8, const char* cPatch, const char* cSample);
@@ -100,15 +103,15 @@
 
 LCMSAPI double          LCMSEXPORT cmsIT8GetDataDbl(LCMSHANDLE IT8, const char* cPatch, const char* cSample);
 
-LCMSAPI BOOL            LCMSEXPORT cmsIT8SetData(LCMSHANDLE IT8, const char* cPatch,
+LCMSAPI LCMSBOOL        LCMSEXPORT cmsIT8SetData(LCMSHANDLE IT8, const char* cPatch,
                                                 const char* cSample,
                                                 const char *Val);
 
-LCMSAPI BOOL            LCMSEXPORT cmsIT8SetDataDbl(LCMSHANDLE hIT8, const char* cPatch,
+LCMSAPI LCMSBOOL        LCMSEXPORT cmsIT8SetDataDbl(LCMSHANDLE hIT8, const char* cPatch,
                                                 const char* cSample,
                                                 double Val);
 
-LCMSAPI BOOL            LCMSEXPORT cmsIT8SetDataFormat(LCMSHANDLE IT8, int n, const char *Sample);
+LCMSAPI LCMSBOOL        LCMSEXPORT cmsIT8SetDataFormat(LCMSHANDLE IT8, int n, const char *Sample);
 LCMSAPI int             LCMSEXPORT cmsIT8EnumDataFormat(LCMSHANDLE IT8, char ***SampleNames);
 
 LCMSAPI void            LCMSEXPORT cmsIT8DefineDblFormat(LCMSHANDLE IT8, const char* Formatter);
@@ -126,7 +129,7 @@
[...6088 lines suppressed...]
+{
+    size_t alloc = nmemb * size;
+    if (alloc < nmemb || alloc < size) {
+        return NULL;
+    }
+    return _cmsMalloc(alloc);
+}
+
+LCMS_INLINE void _cmsFree(void *Ptr)
+{
+    if (Ptr) free(Ptr);    
+}
+
+#endif
+
 // ------------------------------------------------------------------------------------------- end of inline functions
 
 // Signal error from inside lcms code
@@ -1542,8 +1556,8 @@
 void   cdecl VEC3perK(LPVEC3 r, LPVEC3 v, double d);
 void   cdecl VEC3minus(LPVEC3 r, LPVEC3 a, LPVEC3 b);
 void   cdecl VEC3perComp(LPVEC3 r, LPVEC3 a, LPVEC3 b);
-BOOL   cdecl VEC3equal(LPWVEC3 a, LPWVEC3 b, double Tolerance);
-BOOL   cdecl VEC3equalF(LPVEC3 a, LPVEC3 b, double Tolerance);
+LCMSBOOL  cdecl VEC3equal(LPWVEC3 a, LPWVEC3 b, double Tolerance);
+LCMSBOOL  cdecl VEC3equalF(LPVEC3 a, LPVEC3 b, double Tolerance);
 void   cdecl VEC3scaleAndCut(LPWVEC3 r, LPVEC3 v, double d);
 void   cdecl VEC3cross(LPVEC3 r, LPVEC3 u, LPVEC3 v);
 void   cdecl VEC3saturate(LPVEC3 v);
@@ -1554,13 +1568,13 @@
 void   cdecl MAT3per(LPMAT3 r, LPMAT3 a, LPMAT3 b);
 void   cdecl MAT3perK(LPMAT3 r, LPMAT3 v, double d);
 int    cdecl MAT3inverse(LPMAT3 a, LPMAT3 b);
-BOOL   cdecl MAT3solve(LPVEC3 x, LPMAT3 a, LPVEC3 b);
+LCMSBOOL  cdecl MAT3solve(LPVEC3 x, LPMAT3 a, LPVEC3 b);
 double cdecl MAT3det(LPMAT3 m);
 void   cdecl MAT3eval(LPVEC3 r, LPMAT3 a, LPVEC3 v);
 void   cdecl MAT3toFix(LPWMAT3 r, LPMAT3 v);
 void   cdecl MAT3fromFix(LPMAT3 r, LPWMAT3 v);
 void   cdecl MAT3evalW(LPWVEC3 r, LPWMAT3 a, LPWVEC3 v);
-BOOL   cdecl MAT3isIdentity(LPWMAT3 a, double Tolerance);
+LCMSBOOL  cdecl MAT3isIdentity(LPWMAT3 a, double Tolerance);
 void   cdecl MAT3scaleAndCut(LPWMAT3 r, LPMAT3 v, double d);
 
 // Is a table linear?
@@ -1609,7 +1623,7 @@
 void    cdecl cmsCalcL16Params(int nSamples, LPL16PARAMS p);
 void    cdecl cmsCalcCLUT16Params(int nSamples, int InputChan, int OutputChan, LPL16PARAMS p);
 void    cdecl cmsCalcCLUT16ParamsEx(int nSamples, int InputChan, int OutputChan,
-                                            BOOL lUseTetrahedral, LPL16PARAMS p);
+                                            LCMSBOOL lUseTetrahedral, LPL16PARAMS p);
 
 WORD    cdecl cmsLinearInterpLUT16(WORD Value, WORD LutTable[], LPL16PARAMS p);
 Fixed32 cdecl cmsLinearInterpFixed(WORD Value1, WORD LutTable[], LPL16PARAMS p);
@@ -1693,7 +1707,7 @@
 
                // Gray axes fixup. Only on v2 8-bit Lab LUT
 
-               BOOL FixGrayAxes;
+               LCMSBOOL FixGrayAxes;
 
 
                            // Parameters used for curve creation
@@ -1704,7 +1718,7 @@
                }; // LUT, FAR* LPLUT;
 
 
-BOOL         cdecl _cmsSmoothEndpoints(LPWORD Table, int nEntries);
+LCMSBOOL         cdecl _cmsSmoothEndpoints(LPWORD Table, int nEntries);
 
 
 // CRC of gamma tables
@@ -1722,7 +1736,7 @@
 
 void           cdecl cmsEndpointsOfSampledCurve(LPSAMPLEDCURVE p, double* Min, double* Max);
 void           cdecl cmsClampSampledCurve(LPSAMPLEDCURVE p, double Min, double Max);
-BOOL           cdecl cmsSmoothSampledCurve(LPSAMPLEDCURVE Tab, double SmoothingLambda);
+LCMSBOOL       cdecl cmsSmoothSampledCurve(LPSAMPLEDCURVE Tab, double SmoothingLambda);
 void           cdecl cmsRescaleSampledCurve(LPSAMPLEDCURVE p, double Min, double Max, int nPoints);
 
 LPSAMPLEDCURVE cdecl cmsJoinSampledCurves(LPSAMPLEDCURVE X, LPSAMPLEDCURVE Y, int nResultingPoints);
@@ -1756,7 +1770,7 @@
 void        cdecl cmsFreeMatShaper(LPMATSHAPER MatShaper);
 void        cdecl cmsEvalMatShaper(LPMATSHAPER MatShaper, WORD In[], WORD Out[]);
 
-BOOL         cdecl cmsReadICCMatrixRGB2XYZ(LPMAT3 r, cmsHPROFILE hProfile);
+LCMSBOOL    cdecl cmsReadICCMatrixRGB2XYZ(LPMAT3 r, cmsHPROFILE hProfile);
 
 LPMATSHAPER  cdecl cmsBuildInputMatrixShaper(cmsHPROFILE InputProfile);
 LPMATSHAPER  cdecl cmsBuildOutputMatrixShaper(cmsHPROFILE OutputProfile);
@@ -1764,11 +1778,11 @@
 
 
 // White Point & Primary chromas handling
-BOOL cdecl cmsAdaptationMatrix(LPMAT3 r, LPMAT3 ConeMatrix, LPcmsCIEXYZ FromIll, LPcmsCIEXYZ ToIll);
-BOOL cdecl cmsAdaptMatrixToD50(LPMAT3 r, LPcmsCIExyY SourceWhitePt);
-BOOL cdecl cmsAdaptMatrixFromD50(LPMAT3 r, LPcmsCIExyY DestWhitePt);
+LCMSBOOL cdecl cmsAdaptationMatrix(LPMAT3 r, LPMAT3 ConeMatrix, LPcmsCIEXYZ FromIll, LPcmsCIEXYZ ToIll);
+LCMSBOOL cdecl cmsAdaptMatrixToD50(LPMAT3 r, LPcmsCIExyY SourceWhitePt);
+LCMSBOOL cdecl cmsAdaptMatrixFromD50(LPMAT3 r, LPcmsCIExyY DestWhitePt);
 
-BOOL cdecl cmsReadChromaticAdaptationMatrix(LPMAT3 r, cmsHPROFILE hProfile);
+LCMSBOOL cdecl cmsReadChromaticAdaptationMatrix(LPMAT3 r, cmsHPROFILE hProfile);
 
 // Inter-PCS conversion routines. They assume D50 as white point.
 void cdecl cmsXYZ2LabEncoded(WORD XYZ[3], WORD Lab[3]);
@@ -1783,7 +1797,7 @@
 LPcmsNAMEDCOLORLIST  cdecl cmsAllocNamedColorList(int n);
 int                  cdecl cmsReadICCnamedColorList(cmsHTRANSFORM xform, cmsHPROFILE hProfile, icTagSignature sig);
 void                 cdecl cmsFreeNamedColorList(LPcmsNAMEDCOLORLIST List);
-BOOL                 cdecl cmsAppendNamedColor(cmsHTRANSFORM xform, const char* Name, WORD PCS[3], WORD Colorant[MAXCHANNELS]);
+LCMSBOOL             cdecl cmsAppendNamedColor(cmsHTRANSFORM xform, const char* Name, WORD PCS[3], WORD Colorant[MAXCHANNELS]);
 
 
 // I/O
@@ -1827,8 +1841,8 @@
 
                char                    PhysicalFile[MAX_PATH];
 
-               BOOL                    IsWrite;
-               BOOL                    SaveAs8Bits;
+               LCMSBOOL                IsWrite;
+               LCMSBOOL                SaveAs8Bits;
 
                struct tm               Created;
 
@@ -1836,14 +1850,13 @@
 
                size_t (* Read)(void *buffer, size_t size, size_t count, struct _lcms_iccprofile_struct* Icc);
 
-               BOOL   (* Seek)(struct _lcms_iccprofile_struct* Icc, size_t offset);
-               BOOL   (* Close)(struct _lcms_iccprofile_struct* Icc);
+               LCMSBOOL (* Seek)(struct _lcms_iccprofile_struct* Icc, size_t offset);
+               LCMSBOOL (* Close)(struct _lcms_iccprofile_struct* Icc);
                size_t (* Tell)(struct _lcms_iccprofile_struct* Icc);
-               BOOL   (* Grow)(struct _lcms_iccprofile_struct* Icc, size_t amount);
-
+               LCMSBOOL   (* Grow)(struct _lcms_iccprofile_struct* Icc, size_t amount);
                // Writting
 
-               BOOL   (* Write)(struct _lcms_iccprofile_struct* Icc, size_t size, LPVOID Ptr);
+               LCMSBOOL (* Write)(struct _lcms_iccprofile_struct* Icc, size_t size, LPVOID Ptr);
 
                size_t UsedSpace;
 
@@ -1855,7 +1868,7 @@
 cmsHPROFILE cdecl _cmsCreateProfilePlaceholder(void);
 
 // Search into tag dictionary
-icInt32Number cdecl _cmsSearchTag(LPLCMSICCPROFILE Profile, icTagSignature sig, BOOL lSignalError);
+icInt32Number cdecl _cmsSearchTag(LPLCMSICCPROFILE Profile, icTagSignature sig, LCMSBOOL lSignalError);
 
 // Search for a particular tag, replace if found or add new one else
 LPVOID _cmsInitTag(LPLCMSICCPROFILE Icc, icTagSignature sig, size_t size, const void* Init);
@@ -1871,6 +1884,7 @@
 
 // These macros unpack format specifiers into integers
 
+#define T_DITHER(s)           (((s)>>22)&1)
 #define T_COLORSPACE(s)       (((s)>>16)&31)
 #define T_SWAPFIRST(s)        (((s)>>14)&1)
 #define T_FLAVOR(s)           (((s)>>13)&1)
@@ -1967,7 +1981,7 @@
 
                     // Flag for transform involving v4 profiles
 
-                    BOOL lInputV4Lab, lOutputV4Lab;
+                    LCMSBOOL lInputV4Lab, lOutputV4Lab;
 
 
                     // 1-pixel cache
@@ -2014,7 +2028,7 @@
 
 // Clamping & Gamut handling
 
-BOOL cdecl   _cmsEndPointsBySpace(icColorSpaceSignature Space,
+LCMSBOOL cdecl   _cmsEndPointsBySpace(icColorSpaceSignature Space,
                             WORD **White, WORD **Black, int *nOutputs);
 
 WORD * cdecl _cmsWhiteBySpace(icColorSpaceSignature Space);
@@ -2043,7 +2057,7 @@
 LPLUT cdecl _cmsPrecalculateGamutCheck(cmsHTRANSFORM h);
 
 // Hot fixes bad profiles
-BOOL cdecl _cmsFixWhiteMisalignment(_LPcmsTRANSFORM p);
+LCMSBOOL cdecl _cmsFixWhiteMisalignment(_LPcmsTRANSFORM p);
 
 // Marks LUT as 8 bit on input
 LPLUT cdecl _cmsBlessLUT8(LPLUT Lut);
@@ -2061,6 +2075,10 @@
 // Build a tone curve for K->K' if possible (only works on CMYK)
 LPGAMMATABLE _cmsBuildKToneCurve(cmsHTRANSFORM hCMYK2CMYK, int nPoints);
 
+// Validates a LUT
+LCMSBOOL cdecl _cmsValidateLUT(LPLUT NewLUT);
+
+
 // These are two VITAL macros, from converting between 8 and 16 bit
 // representation.
 

java-1.6.0-openjdk-securitypatches.patch:

--- NEW FILE java-1.6.0-openjdk-securitypatches.patch ---
diff -Nurp icedtea6-1.3.1/Makefile.am icedtea6-1.3.1.patched/Makefile.am
--- icedtea6-1.3.1/Makefile.am	2009-05-04 19:32:12.493212829 +0200
+++ icedtea6-1.3.1.patched/Makefile.am	2009-05-04 19:01:57.000000000 +0200
@@ -483,6 +483,34 @@ ICEDTEA_PATCHES = \
 	patches/icedtea-hotspot-use-idx_t.patch \
 	patches/icedtea-hotspot-params-cast-size_t.patch \
 	patches/icedtea-clean-crypto.patch \
+	patches/icedtea-4486841.patch \
+	patches/icedtea-6484091.patch \
+	patches/icedtea-6497740.patch \
+	patches/icedtea-6536193.patch \
+	patches/icedtea-6588160.patch \
+	patches/icedtea-6592792.patch \
+	patches/icedtea-6610888.patch \
+	patches/icedtea-6610896.patch \
+	patches/icedtea-6630639.patch \
+	patches/icedtea-6632886.patch \
+	patches/icedtea-6636360.patch \
+	patches/icedtea-6652463.patch \
+	patches/icedtea-6656633.patch \
+	patches/icedtea-6658158.patch \
+	patches/icedtea-6691246.patch \
+	patches/icedtea-6717680.patch \
+	patches/icedtea-6721651.patch \
+	patches/icedtea-6721753.patch \
+	patches/icedtea-6726779.patch \
+	patches/icedtea-6733959.patch \
+	patches/icedtea-6734167.patch \
+	patches/icedtea-6737315.patch \
+	patches/icedtea-6755943.patch \
+	patches/icedtea-6766136.patch \
+	patches/icedtea-6792554.patch \
+	patches/icedtea-6804996.patch \
+	patches/icedtea-6804997.patch \
+	patches/icedtea-6804998.patch \
 	$(SHARK_PATCH) \
 	$(GCC_PATCH) \
 	patches/icedtea-arch.patch \
@@ -575,7 +603,7 @@ stamps/patch.stamp: stamps/extract.stamp
 	  if test x$${all_patches_ok} = "xyes" \
 	    && echo Checking $$p \
 	    && $(PATCH) -l -p0 --dry-run -s -t -f \
-	      -F 0 < $(abs_top_srcdir)/$$p ; \
+	      < $(abs_top_srcdir)/$$p ; \
 	  then \
 	    echo Applying $$p ; \
 	    $(PATCH) -l -p0 < $(abs_top_srcdir)/$$p ; \
@@ -643,7 +671,7 @@ stamps/patch-fsg.stamp: stamps/extract.s
 	  if test x$${all_patches_ok} = "xyes" \
 	    && echo Checking $$p \
 	    && $(PATCH) -l -p0 --dry-run -s -t -f \
-	      -F 0 < $(abs_top_srcdir)/$$p ; \
+	      < $(abs_top_srcdir)/$$p ; \
 	  then \
 	    echo Applying $$p ; \
 	    $(PATCH) -l -p0 < $(abs_top_srcdir)/$$p ; \
@@ -737,7 +765,7 @@ stamps/patch-ecj.stamp: stamps/extract-e
 	  if test x$${all_patches_ok} = "xyes" \
 	    && echo Checking $$p \
 	    && $(PATCH) -l -p0 --dry-run -s -t -f \
-	      -F 0 < $(abs_top_srcdir)/$$p ; \
+	      < $(abs_top_srcdir)/$$p ; \
 	  then \
 	    echo Applying $$p ; \
 	    $(PATCH) -l -p0 < $(abs_top_srcdir)/$$p ; \
diff -Nurp icedtea6-1.3.1/Makefile.am.orig icedtea6-1.3.1.patched/Makefile.am.orig
--- icedtea6-1.3.1/Makefile.am.orig	2008-10-22 19:20:45.000000000 +0200
+++ icedtea6-1.3.1.patched/Makefile.am.orig	2009-05-04 18:49:16.000000000 +0200
@@ -349,46 +349,6 @@ else
 endif
 endif
 endif
-if WITH_VISUALVM
-if USE_ALT_NETBEANS_BASIC_CLUSTER_SRC_ZIP
-else
-	if ! echo "$(NETBEANS_BASIC_CLUSTER_MD5SUM) $(NETBEANS_BASIC_CLUSTER_SRC_ZIP)" \
-	  | $(MD5SUM) --check ; \
-	then \
-	  if [ $(NETBEANS_BASIC_CLUSTER_SRC_ZIP) ] ; \
-	  then \
-	    mv $(NETBEANS_BASIC_CLUSTER_SRC_ZIP) $(NETBEANS_BASIC_CLUSTER_SRC_ZIP).old ; \
-	  fi ; \
-	$(WGET) $(NETBEANS_BASIC_CLUSTER_URL)$(NETBEANS_BASIC_CLUSTER_SRC_ZIP) \
-	  -O $(NETBEANS_BASIC_CLUSTER_SRC_ZIP) ; \
-	fi
-endif
-if USE_ALT_NETBEANS_PROFILER_SRC_ZIP
-else
-	if ! echo "$(NETBEANS_PROFILER_MD5SUM) $(NETBEANS_PROFILER_SRC_ZIP)" \
-	  | $(MD5SUM) --check ; \
-	then \
-	  if [ $(NETBEANS_PROFILER_SRC_ZIP) ] ; \
-	  then \
-	    mv $(NETBEANS_PROFILER_SRC_ZIP) $(NETBEANS_PROFILER_SRC_ZIP).old ; \
-	  fi ; \
-	  $(WGET) $(NETBEANS_PROFILER_URL)$(NETBEANS_PROFILER_SRC_ZIP) \
-	    -O $(NETBEANS_PROFILER_SRC_ZIP) ; \
-	fi
-endif
-if USE_ALT_VISUALVM_SRC_ZIP
-else
-	if ! echo "$(VISUALVM_MD5SUM) $(VISUALVM_SRC_ZIP)" \
-	  | $(MD5SUM) --check ; \
-	then \
-	  if [ $(VISUALVM_SRC_ZIP) ] ; \
-	  then \
-	    mv $(VISUALVM_SRC_ZIP) $(VISUALVM_SRC_ZIP).old ; \
-	  fi ; \
-	  $(WGET) $(VISUALVM_URL)$(VISUALVM_SRC_ZIP) -O $(VISUALVM_SRC_ZIP) ; \
-	fi
-endif
-endif
 	mkdir -p stamps
 	touch stamps/download.stamp
 
@@ -561,7 +521,6 @@ stamps/extract.stamp: stamps/download.st
 	  mkdir openjdk ; \
 	  $(TAR) xf $(OPENJDK_SRC_ZIP) -C openjdk; \
 	  chmod -R ug+w openjdk ; \
-	  sh $(abs_top_srcdir)/fsg.sh ; \
 	fi
 if WITH_CACAO
 if !USE_SYSTEM_CACAO
@@ -606,7 +565,7 @@ endif
 clean-extract:
 	rm -f stamps/extract.stamp
 
-stamps/patch.stamp: stamps/patch-fsg.stamp
+stamps/patch.stamp: stamps/extract.stamp
 	mkdir -p stamps ; \
 	rm -f stamps/patch.stamp.tmp ; \
 	touch stamps/patch.stamp.tmp ; \
diff -Nurp icedtea6-1.3.1/Makefile.in icedtea6-1.3.1.patched/Makefile.in
--- icedtea6-1.3.1/Makefile.in	2008-10-22 19:54:12.000000000 +0200
+++ icedtea6-1.3.1.patched/Makefile.in	2009-05-04 19:31:33.572209706 +0200
@@ -102,6 +102,7 @@ ALT_JAR_CMD = @ALT_JAR_CMD@
 ALT_NETBEANS_BASIC_CLUSTER_SRC_ZIP = @ALT_NETBEANS_BASIC_CLUSTER_SRC_ZIP@
 ALT_NETBEANS_PROFILER_SRC_ZIP = @ALT_NETBEANS_PROFILER_SRC_ZIP@
 ALT_OPENJDK_SRC_ZIP = @ALT_OPENJDK_SRC_ZIP@
+ALT_OPT_CFLAGS = @ALT_OPT_CFLAGS@
 ALT_VISUALVM_SRC_ZIP = @ALT_VISUALVM_SRC_ZIP@
 AMTAR = @AMTAR@
 ANT = @ANT@
@@ -283,6 +284,7 @@ sharedstatedir = @sharedstatedir@
 srcdir = @srcdir@
 sysconfdir = @sysconfdir@
 target_alias = @target_alias@
+top_build_prefix = @top_build_prefix@
 top_builddir = @top_builddir@
 top_srcdir = @top_srcdir@
 OPENJDK_DATE = 28_aug_2008
@@ -536,8 +538,23 @@ ICEDTEA_PATCHES = $(ZERO_PATCHES_COND) \
 	patches/icedtea-jdk-use-ssize_t.patch \
 	patches/icedtea-hotspot-use-idx_t.patch \
 	patches/icedtea-hotspot-params-cast-size_t.patch \
-	patches/icedtea-clean-crypto.patch $(SHARK_PATCH) $(GCC_PATCH) \
-	patches/icedtea-arch.patch patches/icedtea-lc_ctype.patch \
+	patches/icedtea-clean-crypto.patch \
+	patches/icedtea-4486841.patch patches/icedtea-6484091.patch \
+	patches/icedtea-6497740.patch patches/icedtea-6536193.patch \
+	patches/icedtea-6588160.patch patches/icedtea-6592792.patch \
+	patches/icedtea-6610888.patch patches/icedtea-6610896.patch \
+	patches/icedtea-6630639.patch patches/icedtea-6632886.patch \
+	patches/icedtea-6636360.patch patches/icedtea-6652463.patch \
+	patches/icedtea-6656633.patch patches/icedtea-6658158.patch \
+	patches/icedtea-6691246.patch patches/icedtea-6717680.patch \
+	patches/icedtea-6721651.patch patches/icedtea-6721753.patch \
+	patches/icedtea-6726779.patch patches/icedtea-6733959.patch \
+	patches/icedtea-6734167.patch patches/icedtea-6737315.patch \
+	patches/icedtea-6755943.patch patches/icedtea-6766136.patch \
+	patches/icedtea-6792554.patch patches/icedtea-6804996.patch \
+	patches/icedtea-6804997.patch patches/icedtea-6804998.patch \
+	$(SHARK_PATCH) $(GCC_PATCH) patches/icedtea-arch.patch \
+	patches/icedtea-lc_ctype.patch \
 	patches/icedtea-messageutils.patch \
 	patches/icedtea-6open-6616825.patch \
 	patches/icedtea-6open-6651382.patch \
@@ -953,35 +970,6 @@ stamps/download.stamp:
 @USE_ALT_CACAO_SRC_ZIP_FALSE@@USE_SYSTEM_CACAO_FALSE@@WITH_CACAO_TRUE@	 fi ; \
 @USE_ALT_CACAO_SRC_ZIP_FALSE@@USE_SYSTEM_CACAO_FALSE@@WITH_CACAO_TRUE@	 $(WGET) $(CACAO_URL)$(CACAO_SRC_ZIP) -O $(CACAO_SRC_ZIP); \
 @USE_ALT_CACAO_SRC_ZIP_FALSE@@USE_SYSTEM_CACAO_FALSE@@WITH_CACAO_TRUE@	fi
- at USE_ALT_NETBEANS_BASIC_CLUSTER_SRC_ZIP_FALSE@@WITH_VISUALVM_TRUE@	if ! echo "$(NETBEANS_BASIC_CLUSTER_MD5SUM) $(NETBEANS_BASIC_CLUSTER_SRC_ZIP)" \
- at USE_ALT_NETBEANS_BASIC_CLUSTER_SRC_ZIP_FALSE@@WITH_VISUALVM_TRUE@	  | $(MD5SUM) --check ; \
- at USE_ALT_NETBEANS_BASIC_CLUSTER_SRC_ZIP_FALSE@@WITH_VISUALVM_TRUE@	then \
- at USE_ALT_NETBEANS_BASIC_CLUSTER_SRC_ZIP_FALSE@@WITH_VISUALVM_TRUE@	  if [ $(NETBEANS_BASIC_CLUSTER_SRC_ZIP) ] ; \
- at USE_ALT_NETBEANS_BASIC_CLUSTER_SRC_ZIP_FALSE@@WITH_VISUALVM_TRUE@	  then \
- at USE_ALT_NETBEANS_BASIC_CLUSTER_SRC_ZIP_FALSE@@WITH_VISUALVM_TRUE@	    mv $(NETBEANS_BASIC_CLUSTER_SRC_ZIP) $(NETBEANS_BASIC_CLUSTER_SRC_ZIP).old ; \
- at USE_ALT_NETBEANS_BASIC_CLUSTER_SRC_ZIP_FALSE@@WITH_VISUALVM_TRUE@	  fi ; \
- at USE_ALT_NETBEANS_BASIC_CLUSTER_SRC_ZIP_FALSE@@WITH_VISUALVM_TRUE@	$(WGET) $(NETBEANS_BASIC_CLUSTER_URL)$(NETBEANS_BASIC_CLUSTER_SRC_ZIP) \
- at USE_ALT_NETBEANS_BASIC_CLUSTER_SRC_ZIP_FALSE@@WITH_VISUALVM_TRUE@	  -O $(NETBEANS_BASIC_CLUSTER_SRC_ZIP) ; \
- at USE_ALT_NETBEANS_BASIC_CLUSTER_SRC_ZIP_FALSE@@WITH_VISUALVM_TRUE@	fi
- at USE_ALT_NETBEANS_PROFILER_SRC_ZIP_FALSE@@WITH_VISUALVM_TRUE@	if ! echo "$(NETBEANS_PROFILER_MD5SUM) $(NETBEANS_PROFILER_SRC_ZIP)" \
- at USE_ALT_NETBEANS_PROFILER_SRC_ZIP_FALSE@@WITH_VISUALVM_TRUE@	  | $(MD5SUM) --check ; \
- at USE_ALT_NETBEANS_PROFILER_SRC_ZIP_FALSE@@WITH_VISUALVM_TRUE@	then \
- at USE_ALT_NETBEANS_PROFILER_SRC_ZIP_FALSE@@WITH_VISUALVM_TRUE@	  if [ $(NETBEANS_PROFILER_SRC_ZIP) ] ; \
- at USE_ALT_NETBEANS_PROFILER_SRC_ZIP_FALSE@@WITH_VISUALVM_TRUE@	  then \
- at USE_ALT_NETBEANS_PROFILER_SRC_ZIP_FALSE@@WITH_VISUALVM_TRUE@	    mv $(NETBEANS_PROFILER_SRC_ZIP) $(NETBEANS_PROFILER_SRC_ZIP).old ; \
- at USE_ALT_NETBEANS_PROFILER_SRC_ZIP_FALSE@@WITH_VISUALVM_TRUE@	  fi ; \
- at USE_ALT_NETBEANS_PROFILER_SRC_ZIP_FALSE@@WITH_VISUALVM_TRUE@	  $(WGET) $(NETBEANS_PROFILER_URL)$(NETBEANS_PROFILER_SRC_ZIP) \
[...6004 lines suppressed...]
+     {
+       int fat_frame_count = 0;
+@@ -2293,18 +2356,23 @@
+       // deal completely with fat frames:
+       offset_count += fat_frame_count;
+       code_StackMapTable_local_N.readData(fat_frame_count);
++      CHECK;
+       type_count += code_StackMapTable_local_N.getIntTotal();
+       code_StackMapTable_stack_N.readData(fat_frame_count);
+       type_count += code_StackMapTable_stack_N.getIntTotal();
++      CHECK;
+       // read the rest:
+       code_StackMapTable_offset.readData(offset_count);
+       code_StackMapTable_T.readData(type_count);
++      CHECK;
+       // (7) [RCH]
+       count = code_StackMapTable_T.getIntCount(7);
+       code_StackMapTable_RC.readData(count);
++      CHECK;
+       // (8) [PH]
+       count = code_StackMapTable_T.getIntCount(8);
+       code_StackMapTable_P.readData(count);
++      CHECK;
+     }
+ 
+     count = ad.predefCount(CODE_ATTR_LineNumberTable);
+@@ -2626,7 +2694,9 @@
+   code_max_na_locals.readData();
+   code_handler_count.readData();
+   totalHandlerCount += code_handler_count.getIntTotal();
++  CHECK;
+ 
++
+   // Read handler specifications.
+   // Cf. PackageReader.readCodeHandlers.
+   code_handler_start_P.readData(totalHandlerCount);
+@@ -2633,8 +2703,10 @@
+   code_handler_end_PO.readData(totalHandlerCount);
+   code_handler_catch_PO.readData(totalHandlerCount);
+   code_handler_class_RCN.readData(totalHandlerCount);
++  CHECK;
+ 
+   read_attrs(ATTR_CONTEXT_CODE, totalFlagsCount);
++  CHECK;
+ }
+ 
+ static inline bool is_in_range(uint n, uint min, uint max) {
diff -Nurp icedtea6-1.3.1/patches/icedtea-6804996.patch icedtea6-1.3.1.patched/patches/icedtea-6804996.patch
--- icedtea6-1.3.1/patches/icedtea-6804996.patch	1970-01-01 01:00:00.000000000 +0100
+++ icedtea6-1.3.1.patched/patches/icedtea-6804996.patch	2009-05-04 18:59:01.000000000 +0200
@@ -0,0 +1,75 @@
+--- old/src/share/native/sun/awt/splashscreen/splashscreen_gif.c	Thu Mar  5 16:18:35 2009
++++ openjdk/jdk/src/share/native/sun/awt/splashscreen/splashscreen_gif.c	Thu Mar  5 16:18:34 2009
+@@ -53,10 +53,6 @@
+ // convert libungif samples to our ones
+ #define MAKE_QUAD_GIF(c,a) MAKE_QUAD((c).Red, (c).Green, (c).Blue, (a))
+ 
+-#define SAFE_TO_ALLOC(c, sz)                                               \
+-    (((c) > 0) && ((sz) > 0) &&                                            \
+-     ((0xffffffffu / ((unsigned int)(c))) > (unsigned int)(sz)))
+-
+ /* stdio FILE* and memory input functions for libungif */
+ int
+ SplashStreamGifInputFunc(GifFileType * gif, GifByteType * buf, int n)
+--- old/src/share/native/sun/awt/splashscreen/splashscreen_impl.h	Thu Mar  5 16:18:38 2009
++++ openjdk/jdk/src/share/native/sun/awt/splashscreen/splashscreen_impl.h	Thu Mar  5 16:18:37 2009
+@@ -155,6 +155,10 @@
+ 
+ void SplashInitFrameShape(Splash * splash, int imageIndex);
+ 
++#define SAFE_TO_ALLOC(c, sz)                                               \
++    (((c) > 0) && ((sz) > 0) &&                                            \
++     ((0xffffffffu / ((unsigned int)(c))) > (unsigned int)(sz)))
++
+ #define dbgprintf printf
+ 
+ #endif
+--- old/src/share/native/sun/awt/splashscreen/splashscreen_png.c	Thu Mar  5 16:18:41 2009
++++ openjdk/jdk/src/share/native/sun/awt/splashscreen/splashscreen_png.c	Thu Mar  5 16:18:40 2009
+@@ -103,9 +103,17 @@
+ 
+     rowbytes = png_get_rowbytes(png_ptr, info_ptr);
+ 
++    if (!SAFE_TO_ALLOC(rowbytes, height)) {
++        goto done;
++    }
++
+     if ((image_data = (unsigned char *) malloc(rowbytes * height)) == NULL) {
+         goto done;
+     }
++
++    if (!SAFE_TO_ALLOC(height, sizeof(png_bytep))) {
++        goto done;
++    }
+     if ((row_pointers = (png_bytepp) malloc(height * sizeof(png_bytep)))
+             == NULL) {
+         goto done;
+@@ -121,13 +129,28 @@
+     splash->width = width;
+     splash->height = height;
+ 
++    if (!SAFE_TO_ALLOC(splash->width, splash->imageFormat.depthBytes)) {
++        goto done;
++    }
+     stride = splash->width * splash->imageFormat.depthBytes;
+ 
++    if (!SAFE_TO_ALLOC(splash->height, stride)) {
++        goto done;
++    }
+     splash->frameCount = 1;
+     splash->frames = (SplashImage *)
+         malloc(sizeof(SplashImage) * splash->frameCount);
++
++    if (splash->frames == NULL) {
++        goto done;
++    }
++
+     splash->loopCount = 1;
+     splash->frames[0].bitmapBits = malloc(stride * splash->height);
++    if (splash->frames[0].bitmapBits == NULL) {
++        free(splash->frames);
++        goto done;
++    }
+     splash->frames[0].delay = 0;
+ 
+     /* FIXME: sort out the real format */
diff -Nurp icedtea6-1.3.1/patches/icedtea-6804997.patch icedtea6-1.3.1.patched/patches/icedtea-6804997.patch
--- icedtea6-1.3.1/patches/icedtea-6804997.patch	1970-01-01 01:00:00.000000000 +0100
+++ icedtea6-1.3.1.patched/patches/icedtea-6804997.patch	2009-05-04 18:59:01.000000000 +0200
@@ -0,0 +1,31 @@
+--- old/src/share/native/sun/awt/giflib/dgif_lib.c	Thu Mar  5 16:33:17 2009
++++ openjdk/jdk/src/share/native/sun/awt/giflib/dgif_lib.c	Thu Mar  5 16:33:16 2009
+@@ -722,6 +722,10 @@
+     GifFilePrivateType *Private = (GifFilePrivateType *)GifFile->Private;
+ 
+     READ(GifFile, &CodeSize, 1);    /* Read Code size from file. */
++    if (CodeSize >= 12) {
++        /* Invalid initial code size: report failure */
++        return GIF_ERROR;
++    }
+     BitsPerPixel = CodeSize;
+ 
+     Private->Buf[0] = 0;    /* Input Buffer empty. */
+@@ -964,10 +968,13 @@
+ 
+     /* If code cannot fit into RunningBits bits, must raise its size. Note
+      * however that codes above 4095 are used for special signaling.  */
+-    if (++Private->RunningCode > Private->MaxCode1 &&
+-        Private->RunningBits < LZ_BITS) {
+-        Private->MaxCode1 <<= 1;
+-        Private->RunningBits++;
++    if (++Private->RunningCode > Private->MaxCode1) {
++        if (Private->RunningBits < LZ_BITS) {
++            Private->MaxCode1 <<= 1;
++            Private->RunningBits++;
++        } else {
++            Private->RunningCode = Private->MaxCode1;
++        }
+     }
+     return GIF_OK;
+ }
diff -Nurp icedtea6-1.3.1/patches/icedtea-6804998.patch icedtea6-1.3.1.patched/patches/icedtea-6804998.patch
--- icedtea6-1.3.1/patches/icedtea-6804998.patch	1970-01-01 01:00:00.000000000 +0100
+++ icedtea6-1.3.1.patched/patches/icedtea-6804998.patch	2009-05-04 18:59:01.000000000 +0200
@@ -0,0 +1,35 @@
+--- old/src/share/classes/sun/awt/image/GifImageDecoder.java	Thu Mar  5 17:00:25 2009
++++ openjdk/jdk/src/share/classes/sun/awt/image/GifImageDecoder.java	Thu Mar  5 17:00:24 2009
+@@ -585,9 +585,16 @@
+             System.out.print("Reading a " + width + " by " + height + " " +
+                       (interlace ? "" : "non-") + "interlaced image...");
+         }
+-
++        int initCodeSize = ExtractByte(block, 9);
++        if (initCodeSize >= 12) {
++            if (verbose) {
++                System.out.println("Invalid initial code size: " +
++                                   initCodeSize);
++            }
++            return false;
++        }
+         boolean ret = parseImage(x, y, width, height,
+-                                 interlace, ExtractByte(block, 9),
++                                 interlace, initCodeSize,
+                                  block, rasline, model);
+ 
+         if (!ret) {
+--- old/src/share/native/sun/awt/image/gif/gifdecoder.c	Thu Mar  5 17:00:28 2009
++++ openjdk/jdk/src/share/native/sun/awt/image/gif/gifdecoder.c	Thu Mar  5 17:00:27 2009
+@@ -191,6 +191,11 @@
+     int passht = passinc;
+     int len;
+ 
++    /* We have verified the initial code size on the java layer.
++     * Here we just check bounds for particular indexes. */
++    if (freeCode >= 4096 || maxCode >= 4096) {
++        return 0;
++    }
+     if (blockh == 0 || raslineh == 0
+         || prefixh == 0 || suffixh == 0
+         || outCodeh == 0)


Index: java-1.6.0-openjdk.spec
===================================================================
RCS file: /cvs/pkgs/rpms/java-1.6.0-openjdk/EL-5/java-1.6.0-openjdk.spec,v
retrieving revision 1.34
retrieving revision 1.35
diff -u -p -r1.34 -r1.35
--- java-1.6.0-openjdk.spec	29 Oct 2008 20:14:51 -0000	1.34
+++ java-1.6.0-openjdk.spec	4 May 2009 19:00:53 -0000	1.35
@@ -111,7 +111,7 @@
 
 Name:    java-%{javaver}-%{origin}
 Version: %{javaver}.%{buildver}
-Release: 1.0.%{openjdkver}%{?dist}.2
+Release: 1.0.%{openjdkver}%{?dist}.3
 # java-1.5.0-ibm from jpackage.org set Epoch to 1 for unknown reasons,
 # and this change was brought into RHEL-4.  java-1.5.0-ibm packages
 # also included the epoch in their virtual provides.  This created a
@@ -144,6 +144,8 @@ Patch2:   java-1.6.0-openjdk-makefile.pa
 Patch3:   java-1.6.0-openjdk-java-access-bridge-idlj.patch
 Patch10:  java-1.6.0-openjdk-freetype.patch
 Patch11:  java-1.6.0-openjdk-netxtmp.patch
+Patch12:  java-1.6.0-openjdk-securitypatches.patch
+Patch13:  java-1.6.0-openjdk-lcms.patch
 
 BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
 
@@ -349,6 +351,7 @@ The OpenJDK web browser plugin.
 %patch0
 %patch2
 %patch11 -p1
+%patch12 -p1
 cp %{SOURCE4} .
 cp %{SOURCE5} .
 cp %{SOURCE7} .
@@ -372,6 +375,7 @@ popd
 %endif
 make stamps/patch.stamp
 patch -l -p1 < %{PATCH10}
+patch -l -p0 < %{PATCH13}
 
 make
 
@@ -900,6 +904,9 @@ exit 0
 %{_jvmdir}/%{jredir}/lib/%{archinstall}/%{browser_plugin}
 
 %changelog
+* Mon May 4 2009 Lubomir Rintel <lkundrak at v3.sk> - 1:1.6.0.0-1.0.b12.3
+- Post-mortem update with security patches work around RHEL packaging bug
+
 * Mon Oct 27 2008 Lubomir Rintel <lkundrak at v3.sk> - 1:1.6.0.0-1.0.b12.2
 - Remove the annoying JNLP tmp dir dialog
 - Merge from devel




More information about the fedora-extras-commits mailing list