summaryrefslogtreecommitdiff
path: root/vp8/decoder/dboolhuff.c
diff options
context:
space:
mode:
authorJohann <johannkoenig@google.com>2019-12-03 15:29:35 -0800
committerJohann <johannkoenig@google.com>2019-12-04 14:01:28 -0800
commit80e5666cdcb3cd62907e7bb1d3618bf6c5a259db (patch)
tree9ccddd97a8fa3d393e2f0d339130acfbef1d1bd1 /vp8/decoder/dboolhuff.c
parent89375f0315cf961493f535e900d35cb67d00d9e1 (diff)
downloadlibvpx-80e5666cdcb3cd62907e7bb1d3618bf6c5a259db.tar
libvpx-80e5666cdcb3cd62907e7bb1d3618bf6c5a259db.tar.gz
libvpx-80e5666cdcb3cd62907e7bb1d3618bf6c5a259db.tar.bz2
libvpx-80e5666cdcb3cd62907e7bb1d3618bf6c5a259db.zip
vp8 boolreader: ignore invalid input
Do basic initialization even when the result will not be used. BUG=chromium:1026961 Change-Id: Iaa480534b49efe1ecc66484b316f8d654e8a1245
Diffstat (limited to 'vp8/decoder/dboolhuff.c')
-rw-r--r--vp8/decoder/dboolhuff.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/vp8/decoder/dboolhuff.c b/vp8/decoder/dboolhuff.c
index 9cf74bf85..4cfaef05c 100644
--- a/vp8/decoder/dboolhuff.c
+++ b/vp8/decoder/dboolhuff.c
@@ -15,7 +15,11 @@
int vp8dx_start_decode(BOOL_DECODER *br, const unsigned char *source,
unsigned int source_sz, vpx_decrypt_cb decrypt_cb,
void *decrypt_state) {
- br->user_buffer_end = source + source_sz;
+ // To simplify calling code this fuction can be called with |source| == null
+ // and |source_sz| == 0. This and vp8dx_bool_decoder_fill() are essentially
+ // no-ops in this case.
+ // Work around a ubsan warning with a ternary to avoid adding 0 to null.
+ br->user_buffer_end = source ? source + source_sz : source;
br->user_buffer = source;
br->value = 0;
br->count = -8;