Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(17)

Side by Side Diff: third_party/lcms2-2.6/src/cmslut.c

Issue 2424803002: lcms: Revise previous cmsStageAllocMatrix fix (Closed)
Patch Set: Created 4 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « third_party/lcms2-2.6/README.pdfium ('k') | third_party/lcms2-2.6/src/cmstypes.c » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 //------------------------------------------------------------------------------ --- 1 //------------------------------------------------------------------------------ ---
2 // 2 //
3 // Little Color Management System 3 // Little Color Management System
4 // Copyright (c) 1998-2012 Marti Maria Saguer 4 // Copyright (c) 1998-2012 Marti Maria Saguer
5 // 5 //
6 // Permission is hereby granted, free of charge, to any person obtaining 6 // Permission is hereby granted, free of charge, to any person obtaining
7 // a copy of this software and associated documentation files (the "Software"), 7 // a copy of this software and associated documentation files (the "Software"),
8 // to deal in the Software without restriction, including without limitation 8 // to deal in the Software without restriction, including without limitation
9 // the rights to use, copy, modify, merge, publish, distribute, sublicense, 9 // the rights to use, copy, modify, merge, publish, distribute, sublicense,
10 // and/or sell copies of the Software, and to permit persons to whom the Softwar e 10 // and/or sell copies of the Software, and to permit persons to whom the Softwar e
(...skipping 373 matching lines...) Expand 10 before | Expand all | Expand 10 after
384 cmsStage* NewMPE; 384 cmsStage* NewMPE;
385 385
386 n = Rows * Cols; 386 n = Rows * Cols;
387 387
388 // Check for overflow 388 // Check for overflow
389 if (n == 0) return NULL; 389 if (n == 0) return NULL;
390 if (n >= UINT_MAX / Cols) return NULL; 390 if (n >= UINT_MAX / Cols) return NULL;
391 if (n >= UINT_MAX / Rows) return NULL; 391 if (n >= UINT_MAX / Rows) return NULL;
392 if (n < Rows || n < Cols) return NULL; 392 if (n < Rows || n < Cols) return NULL;
393 393
394 NewMPE = _cmsStageAllocPlaceholder(ContextID, cmsSigMatrixElemType, Rows, Co ls, 394 NewMPE = _cmsStageAllocPlaceholder(ContextID, cmsSigMatrixElemType, Cols, Ro ws,
395 EvaluateMatrix, MatrixElemDup, MatrixElemTy peFree, NULL ); 395 EvaluateMatrix, MatrixElemDup, MatrixElemTy peFree, NULL );
396 if (NewMPE == NULL) return NULL; 396 if (NewMPE == NULL) return NULL;
397 397
398 398
399 NewElem = (_cmsStageMatrixData*) _cmsMallocZero(ContextID, sizeof(_cmsStageM atrixData)); 399 NewElem = (_cmsStageMatrixData*) _cmsMallocZero(ContextID, sizeof(_cmsStageM atrixData));
400 if (NewElem == NULL) return NULL; 400 if (NewElem == NULL) return NULL;
401 401
402 402
403 NewElem ->Double = (cmsFloat64Number*) _cmsCalloc(ContextID, n, sizeof(cmsFl oat64Number)); 403 NewElem ->Double = (cmsFloat64Number*) _cmsCalloc(ContextID, n, sizeof(cmsFl oat64Number));
404 404
405 if (NewElem->Double == NULL) { 405 if (NewElem->Double == NULL) {
406 MatrixElemTypeFree(NewMPE); 406 MatrixElemTypeFree(NewMPE);
407 return NULL; 407 return NULL;
408 } 408 }
409 409
410 for (i=0; i < n; i++) { 410 for (i=0; i < n; i++) {
411 NewElem ->Double[i] = Matrix[i]; 411 NewElem ->Double[i] = Matrix[i];
412 } 412 }
413 413
414 414
415 if (Offset != NULL) { 415 if (Offset != NULL) {
416 416
417 NewElem ->Offset = (cmsFloat64Number*) _cmsCalloc(ContextID, Cols, sizeo f(cmsFloat64Number)); 417 NewElem ->Offset = (cmsFloat64Number*) _cmsCalloc(ContextID, Rows, sizeo f(cmsFloat64Number));
418 if (NewElem->Offset == NULL) { 418 if (NewElem->Offset == NULL) {
419 MatrixElemTypeFree(NewMPE); 419 MatrixElemTypeFree(NewMPE);
420 return NULL; 420 return NULL;
421 } 421 }
422 422
423 for (i=0; i < Cols; i++) { 423 for (i=0; i < Rows; i++) {
424 NewElem ->Offset[i] = Offset[i]; 424 NewElem ->Offset[i] = Offset[i];
425 } 425 }
426 426
427 } 427 }
428 428
429 NewMPE ->Data = (void*) NewElem; 429 NewMPE ->Data = (void*) NewElem;
430 return NewMPE; 430 return NewMPE;
431 } 431 }
432 432
433 433
(...skipping 1350 matching lines...) Expand 10 before | Expand all | Expand 10 after
1784 // Some clipping.... 1784 // Some clipping....
1785 for (j=0; j < 3; j++) { 1785 for (j=0; j < 3; j++) {
1786 if (x[j] < 0) x[j] = 0; 1786 if (x[j] < 0) x[j] = 0;
1787 else 1787 else
1788 if (x[j] > 1.0) x[j] = 1.0; 1788 if (x[j] > 1.0) x[j] = 1.0;
1789 } 1789 }
1790 } 1790 }
1791 1791
1792 return TRUE; 1792 return TRUE;
1793 } 1793 }
OLDNEW
« no previous file with comments | « third_party/lcms2-2.6/README.pdfium ('k') | third_party/lcms2-2.6/src/cmstypes.c » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698