From 6f2ac3ee366a9b587abe9a72febc400ba5b98c24 Mon Sep 17 00:00:00 2001 From: Matthieu Darbois Date: Tue, 26 Apr 2016 22:06:06 +0200 Subject: [PATCH] Fix negative shift left reported by UBSan (#757) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This shall have no performance impact on 2’s complement machine where the compiler replaces the multiplication by power of two (constant) by a left shift. Verified at least on MacOS Xcode 7.3, same assembly generated after fix. --- src/lib/openjp2/t1.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/lib/openjp2/t1.c b/src/lib/openjp2/t1.c index 108ce78b..8d020bb5 100644 --- a/src/lib/openjp2/t1.c +++ b/src/lib/openjp2/t1.c @@ -1514,7 +1514,7 @@ OPJ_BOOL opj_t1_encode_cblks( opj_t1_t *t1, if (tccp->qmfbid == 1) { for (j = 0; j < cblk_h; ++j) { for (i = 0; i < cblk_w; ++i) { - tiledp[tileIndex] <<= T1_NMSEDEC_FRACBITS; + tiledp[tileIndex] *= 1 << T1_NMSEDEC_FRACBITS; tileIndex++; } tileIndex += tileLineAdvance;