8210606: Improved data set handling
authorprr
Fri, 05 Oct 2018 11:36:30 -0700
changeset 53329 d845ee36da70
parent 53328 dff86e25073f
child 53330 e8bae92beee3
8210606: Improved data set handling Reviewed-by: serb, psadhukhan, mschoene, rhalade
src/java.desktop/share/native/liblcms/cmscgats.c
--- a/src/java.desktop/share/native/liblcms/cmscgats.c	Fri Oct 05 08:54:10 2018 +0100
+++ b/src/java.desktop/share/native/liblcms/cmscgats.c	Fri Oct 05 11:36:30 2018 -0700
@@ -1535,10 +1535,16 @@
     t-> nSamples   = atoi(cmsIT8GetProperty(it8, "NUMBER_OF_FIELDS"));
     t-> nPatches   = atoi(cmsIT8GetProperty(it8, "NUMBER_OF_SETS"));
 
-    t-> Data = (char**)AllocChunk (it8, ((cmsUInt32Number) t->nSamples + 1) * ((cmsUInt32Number) t->nPatches + 1) *sizeof (char*));
-    if (t->Data == NULL) {
-
-        SynError(it8, "AllocateDataSet: Unable to allocate data array");
+    if (t -> nSamples < 0 || t->nSamples > 0x7ffe || t->nPatches < 0 || t->nPatches > 0x7ffe)
+    {
+        SynError(it8, "AllocateDataSet: too much data");
+    }
+    else {
+        t->Data = (char**)AllocChunk(it8, ((cmsUInt32Number)t->nSamples + 1) * ((cmsUInt32Number)t->nPatches + 1) * sizeof(char*));
+        if (t->Data == NULL) {
+
+            SynError(it8, "AllocateDataSet: Unable to allocate data array");
+        }
     }
 
 }