From: Matthieu Darbois Date: Tue, 26 Apr 2016 20:06:06 +0000 (+0200) Subject: Fix negative shift left reported by UBSan (#757) X-Git-Tag: v2.1.1~18^2~27 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=6f2ac3ee366a9b587abe9a72febc400ba5b98c24;p=openjpeg Fix negative shift left reported by UBSan (#757) 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. --- 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;