--- a/jdk/src/share/native/sun/java2d/cmm/lcms/LCMS.c Thu Oct 18 11:09:00 2012 -0700
+++ b/jdk/src/share/native/sun/java2d/cmm/lcms/LCMS.c Tue Oct 23 09:38:38 2012 -0700
@@ -253,6 +253,16 @@
if (sProf.pf == NULL) {
JNU_ThrowIllegalArgumentException(env, "Invalid profile data");
+ } else {
+ /* Sanity check: try to save the profile in order
+ * to force basic validation.
+ */
+ cmsUInt32Number pfSize = 0;
+ if (!cmsSaveProfileToMem(sProf.pf, NULL, &pfSize) ||
+ pfSize < sizeof(cmsICCHeader))
+ {
+ JNU_ThrowIllegalArgumentException(env, "Invalid profile data");
+ }
}
return sProf.j;