From ac4a899511dd3c673e3542848fe4719e39dc84f0 Mon Sep 17 00:00:00 2001 From: DRC Date: Thu, 22 Sep 2016 14:38:51 -0500 Subject: [PATCH] Fix UBSan warning in arithmetic decoder Very similar to the ones that were fixed in the Huffman decoders in 8e9cef2e6f5156c4b055a04a8f979b7291fc6b7a. These are innocuous. Refer to https://bugzilla.mozilla.org/show_bug.cgi?id=1304567. --- jdarith.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/jdarith.c b/jdarith.c index df3540eef..ce0f92095 100644 --- a/jdarith.c +++ b/jdarith.c @@ -21,6 +21,9 @@ #include "jpeglib.h" +#define NEG_1 ((unsigned int)-1) + + /* Expanded entropy decoder object for arithmetic decoding. */ typedef struct { @@ -450,7 +453,7 @@ decode_mcu_AC_refine (j_decompress_ptr cinfo, JBLOCKROW *MCU_data) tbl = cinfo->cur_comp_info[0]->ac_tbl_no; p1 = 1 << cinfo->Al; /* 1 in the bit position being coded */ - m1 = (-1) << cinfo->Al; /* -1 in the bit position being coded */ + m1 = (NEG_1) << cinfo->Al; /* -1 in the bit position being coded */ /* Establish EOBx (previous stage end-of-block) index */ for (kex = cinfo->Se; kex > 0; kex--)