From 64cf622b9244ddb161bac90b944d8fabccae932b Mon Sep 17 00:00:00 2001 From: Glenn Randers-Pehrson Date: Fri, 28 Nov 2008 10:16:54 +0100 Subject: [PATCH] Bug 460520 - LCMS detection code for bogus cHRM chunks. r=bholley,a191=beltzner --- modules/lcms/src/cmsmtrx.c | 2 +- modules/lcms/src/cmswtpnt.c | 4 +++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/modules/lcms/src/cmsmtrx.c b/modules/lcms/src/cmsmtrx.c index edaccaa3153c..068f461c16df 100644 --- a/modules/lcms/src/cmsmtrx.c +++ b/modules/lcms/src/cmsmtrx.c @@ -584,7 +584,7 @@ LCMSBOOL MAT3solve(LPVEC3 x, LPMAT3 a, LPVEC3 b) CopyMemory(&m, a, sizeof(MAT3)); - if (!MAT3inverse(&m, &a_1)) return FALSE; // Singular matrix + if (MAT3inverse(&m, &a_1) < 0) return FALSE; // Singular matrix MAT3eval(x, &a_1, b); return TRUE; diff --git a/modules/lcms/src/cmswtpnt.c b/modules/lcms/src/cmswtpnt.c index c3ec50d972fe..f5aec66d4e75 100644 --- a/modules/lcms/src/cmswtpnt.c +++ b/modules/lcms/src/cmswtpnt.c @@ -126,6 +126,8 @@ LCMSBOOL LCMSEXPORT cmsBuildRGB2XYZtransferMatrix(LPMAT3 r, LPcmsCIExyY WhitePt, xn = WhitePt -> x; yn = WhitePt -> y; + if (yn == 0.0) + return FALSE; xr = Primrs -> Red.x; yr = Primrs -> Red.y; xg = Primrs -> Green.x; @@ -141,7 +143,7 @@ LCMSBOOL LCMSEXPORT cmsBuildRGB2XYZtransferMatrix(LPMAT3 r, LPcmsCIExyY WhitePt, // Result = Primaries ^ (-1) inverse matrix - if (!MAT3inverse(&Primaries, &Result)) + if (MAT3inverse(&Primaries, &Result) < 0) return FALSE;