poppler/JPXStream.cc | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-)
New commits: commit 2e406d3de277545c61ef462aca5b9e7b984dc477 Author: Robert Niemi <[email protected]> Date: Sat Mar 2 06:43:30 2019 +0100 JPXStream: Replaces undefined left-shift operations. Left-shifting a negative signed int is undefined. Most compilers shifts the same way as unsigned ints, but it's better to be clear about it. diff --git a/poppler/JPXStream.cc b/poppler/JPXStream.cc index e66ebb3f..9209d3ed 100644 --- a/poppler/JPXStream.cc +++ b/poppler/JPXStream.cc @@ -2816,7 +2816,7 @@ void JPXStream::inverseTransform(JPXTileComp *tileComp) { if (shift2 > 0) { cover(94); if (val < 0) { - val = (val << shift2) - (1 << (shift2 - 1)); + val = (((unsigned int)val) << shift2) - (1 << (shift2 - 1)); } else { val = (val << shift2) + (1 << (shift2 - 1)); } @@ -2828,7 +2828,7 @@ void JPXStream::inverseTransform(JPXTileComp *tileComp) { cover(96); if (tileComp->transform == 0) { cover(97); - val &= -1 << fracBits; + val &= 0xFFFFFFFF << fracBits; } } else { cover(98); @@ -2931,7 +2931,7 @@ void JPXStream::inverseTransformLevel(JPXTileComp *tileComp, if (shift2 > 0) { cover(74); if (val < 0) { - val = (val << shift2) - (1 << (shift2 - 1)); + val = (((unsigned int)val) << shift2) - (1 << (shift2 - 1)); } else { val = (val << shift2) + (1 << (shift2 - 1)); } @@ -2942,7 +2942,7 @@ void JPXStream::inverseTransformLevel(JPXTileComp *tileComp, if (qStyle == 0) { cover(76); if (tileComp->transform == 0) { - val &= -1 << fracBits; + val &= 0xFFFFFFFF << fracBits; } } else { cover(77); _______________________________________________ poppler mailing list [email protected] https://lists.freedesktop.org/mailman/listinfo/poppler
