Skip to content

Commit 20142e6

Browse files
committed
Fix a signed integer overflow which could trigger a FPE_INTOVF
1 parent efa0c49 commit 20142e6

1 file changed

Lines changed: 2 additions & 2 deletions

File tree

src/cmsintrp.c

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -957,7 +957,7 @@ void Eval4Inputs(CMSREGISTER const cmsUInt16Number Input[],
957957

958958
Rest = c1 * rx + c2 * ry + c3 * rz;
959959

960-
Tmp1[OutChan] = (cmsUInt16Number)(c0 + ROUND_FIXED_TO_INT(_cmsToFixedDomain(Rest)));
960+
Tmp1[OutChan] = (cmsUInt16Number)c0 + ((Rest + (Rest >> 16)) >> 16);
961961
}
962962

963963

@@ -1021,7 +1021,7 @@ void Eval4Inputs(CMSREGISTER const cmsUInt16Number Input[],
10211021

10221022
Rest = c1 * rx + c2 * ry + c3 * rz;
10231023

1024-
Tmp2[OutChan] = (cmsUInt16Number) (c0 + ROUND_FIXED_TO_INT(_cmsToFixedDomain(Rest)));
1024+
Tmp2[OutChan] = (cmsUInt16Number) c0 + ((Rest + (Rest >> 16)) >> 16);
10251025
}
10261026

10271027

0 commit comments

Comments
 (0)