opj_t1_encode_cblk(): avoid undefined behaviour on fuzzed input (fixes #1432)
OPJ_INT32 tmp = *datap;
if (tmp < 0) {
OPJ_UINT32 tmp_unsigned;
+ if (tmp == INT_MIN) {
+ /* To avoid undefined behaviour when negating INT_MIN */
+ /* but if we go here, it means we have supplied an input */
+ /* with more bit depth than we we can really support. */
+ /* Cf https://github.com/uclouvain/openjpeg/issues/1432 */
+ tmp = INT_MIN + 1;
+ }
max = opj_int_max(max, -tmp);
tmp_unsigned = opj_to_smr(tmp);
memcpy(datap, &tmp_unsigned, sizeof(OPJ_INT32));