diff options
author | Johann <johannkoenig@google.com> | 2019-12-03 15:29:35 -0800 |
---|---|---|
committer | Johann <johannkoenig@google.com> | 2019-12-04 14:01:28 -0800 |
commit | 80e5666cdcb3cd62907e7bb1d3618bf6c5a259db (patch) | |
tree | 9ccddd97a8fa3d393e2f0d339130acfbef1d1bd1 /vp8/decoder/dboolhuff.c | |
parent | 89375f0315cf961493f535e900d35cb67d00d9e1 (diff) | |
download | libvpx-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.c | 6 |
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; |