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

Reply via email to