From f4eeac74b4496515d68afc85531cc694104be459 Mon Sep 17 00:00:00 2001 From: Alex Gaynor Date: Sun, 14 Mar 2021 11:10:46 -0400 Subject: [PATCH 1/2] fix another potential source of undefined behavior if prec is 31, this leads to an undefined shift --- src/libjasper/pgx/pgx_dec.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/libjasper/pgx/pgx_dec.c b/src/libjasper/pgx/pgx_dec.c index cf69c81e..a74ffbec 100644 --- a/src/libjasper/pgx/pgx_dec.c +++ b/src/libjasper/pgx/pgx_dec.c @@ -362,7 +362,7 @@ static int_fast32_t pgx_getword(jas_stream_t *in, bool bigendian, int prec) j = bigendian ? (wordsize - 1 - i) : i; val = val | ((c & 0xffU) << (8 * j)); } - val &= (1 << prec) - 1; + val &= (1U << prec) - 1; return val; error: From f261ced1f7a422bcaf8b4aac816192a01bc2fe48 Mon Sep 17 00:00:00 2001 From: Alex Gaynor Date: Thu, 18 Mar 2021 11:21:01 -0400 Subject: [PATCH 2/2] Update pgx_dec.c --- src/libjasper/pgx/pgx_dec.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/libjasper/pgx/pgx_dec.c b/src/libjasper/pgx/pgx_dec.c index a74ffbec..4fae1c20 100644 --- a/src/libjasper/pgx/pgx_dec.c +++ b/src/libjasper/pgx/pgx_dec.c @@ -362,7 +362,7 @@ static int_fast32_t pgx_getword(jas_stream_t *in, bool bigendian, int prec) j = bigendian ? (wordsize - 1 - i) : i; val = val | ((c & 0xffU) << (8 * j)); } - val &= (1U << prec) - 1; + val &= (JAS_CAST(uint_fast32_t, 1) << prec) - 1; return val; error: