summaryrefslogtreecommitdiff
path: root/src/lib
diff options
context:
space:
mode:
authorEven Rouault <even.rouault@mines-paris.org>2017-06-18 00:49:20 +0200
committerGitHub <noreply@github.com>2017-06-18 00:49:20 +0200
commit5c56933daf1da88aa6f2a8c8dc5fcc7b1d76cb00 (patch)
tree1c413b3338a43c5b40ae9da9a7ff705c1a332a64 /src/lib
parent32b20b93e04d38303f736e975eb5f483fda01ca5 (diff)
parent8df2521a6015af7f69a378811986ddb0b3bfbd3a (diff)
Merge pull request #955 from rouault/remove_opj_nosanitize
Remove OPJ_NOSANITIZE in opj_bio_read() and opj_bio_write() (#761)
Diffstat (limited to 'src/lib')
-rw-r--r--src/lib/openjp2/bio.c10
1 files changed, 4 insertions, 6 deletions
diff --git a/src/lib/openjp2/bio.c b/src/lib/openjp2/bio.c
index c291e2a0..09dcd7f5 100644
--- a/src/lib/openjp2/bio.c
+++ b/src/lib/openjp2/bio.c
@@ -162,21 +162,19 @@ void opj_bio_init_dec(opj_bio_t *bio, OPJ_BYTE *bp, OPJ_UINT32 len)
bio->ct = 0;
}
-OPJ_NOSANITIZE("unsigned-integer-overflow")
void opj_bio_write(opj_bio_t *bio, OPJ_UINT32 v, OPJ_UINT32 n)
{
- OPJ_UINT32 i;
+ OPJ_INT32 i;
assert((n > 0U) && (n <= 32U));
- for (i = n - 1; i < n; i--) { /* overflow used for end-loop condition */
+ for (i = (OPJ_INT32)n - 1; i >= 0; i--) {
opj_bio_putbit(bio, (v >> i) & 1);
}
}
-OPJ_NOSANITIZE("unsigned-integer-overflow")
OPJ_UINT32 opj_bio_read(opj_bio_t *bio, OPJ_UINT32 n)
{
- OPJ_UINT32 i;
+ OPJ_INT32 i;
OPJ_UINT32 v;
assert((n > 0U) /* && (n <= 32U)*/);
@@ -187,7 +185,7 @@ OPJ_UINT32 opj_bio_read(opj_bio_t *bio, OPJ_UINT32 n)
assert(n <= 32U);
#endif
v = 0U;
- for (i = n - 1; i < n; i--) { /* overflow used for end-loop condition */
+ for (i = (OPJ_INT32)n - 1; i >= 0; i--) {
v |= opj_bio_getbit(bio) <<
i; /* can't overflow, opj_bio_getbit returns 0 or 1 */
}