Merge 6120ec07623a2ea44ab5af6861b703d1f785cf48 on remote branch
Change-Id: I646edd2ea730cccb00989cdca87b20edd30a3ee2
diff --git a/libFLAC/bitreader.c b/libFLAC/bitreader.c
index ab62d41..8969714 100644
--- a/libFLAC/bitreader.c
+++ b/libFLAC/bitreader.c
@@ -859,7 +859,7 @@
cwords = br->consumed_words;
words = br->words;
ucbits = FLAC__BITS_PER_WORD - br->consumed_bits;
- b = br->buffer[cwords] << br->consumed_bits;
+ b = cwords < br->capacity ? br->buffer[cwords] << br->consumed_bits : 0;
} while(cwords >= words && val < end);
}
diff --git a/libFLAC/stream_decoder.c b/libFLAC/stream_decoder.c
index 071398a..7db34cf 100644
--- a/libFLAC/stream_decoder.c
+++ b/libFLAC/stream_decoder.c
@@ -1761,6 +1761,9 @@
}
memset (obj->comments[i].entry, 0, obj->comments[i].length) ;
if (!FLAC__bitreader_read_byte_block_aligned_no_crc(decoder->private_->input, obj->comments[i].entry, obj->comments[i].length)) {
+ /* Current i-th entry is bad, so we delete it. */
+ free (obj->comments[i].entry) ;
+ obj->comments[i].entry = NULL ;
obj->num_comments = i;
goto skip;
}