summaryrefslogtreecommitdiff
path: root/src/lib
diff options
context:
space:
mode:
authorAaron Boxer <boxerab@gmail.com>2016-01-30 10:05:46 -0500
committerAaron Boxer <boxerab@gmail.com>2016-01-30 10:05:46 -0500
commit0069a2bd2f8055b7edf9699332f4f00ac5351564 (patch)
treed3e2767de60d48fb59ed95c489dd467dcfe82377 /src/lib
parente3100f714c2bae3da26877020048e2cf5906172b (diff)
suppress valgrind error - avoid accessing uninitialized memory in mq encoder
Diffstat (limited to 'src/lib')
-rw-r--r--src/lib/openjp2/mqc.c12
1 files changed, 9 insertions, 3 deletions
diff --git a/src/lib/openjp2/mqc.c b/src/lib/openjp2/mqc.c
index e6e4cc87..4e409a7c 100644
--- a/src/lib/openjp2/mqc.c
+++ b/src/lib/openjp2/mqc.c
@@ -203,14 +203,20 @@ static opj_mqc_state_t mqc_states[47 * 2] = {
*/
static void opj_mqc_byteout(opj_mqc_t *mqc) {
- OPJ_BYTE bp_in_bounds = (mqc->bp >= mqc->start);
- if (bp_in_bounds & (*mqc->bp == 0xff)) {
+ /* avoid accessing uninitialized memory*/
+ if (mqc->bp == mqc->start-1) {
+ mqc->bp++;
+ *mqc->bp = (OPJ_BYTE)(mqc->c >> 19);
+ mqc->c &= 0x7ffff;
+ mqc->ct = 8;
+ }
+ else if (*mqc->bp == 0xff) {
mqc->bp++;
*mqc->bp = (OPJ_BYTE)(mqc->c >> 20);
mqc->c &= 0xfffff;
mqc->ct = 7;
} else {
- if ((bp_in_bounds ^ 1) | ((mqc->c & 0x8000000) == 0)) {
+ if ((mqc->c & 0x8000000) == 0) {
mqc->bp++;
*mqc->bp = (OPJ_BYTE)(mqc->c >> 19);
mqc->c &= 0x7ffff;