[FFmpeg-devel] [PATCH] golomb: always check for invalid UE golomb codes in get_ue_golomb
Michael Niedermayer
michaelni at gmx.at
Mon Dec 14 00:51:05 CET 2015
On Sun, Dec 13, 2015 at 09:56:06PM +0100, Andreas Cadhalpun wrote:
> Also correct the check to reject log < 7, because UPDATE_CACHE only
> guarantees 25 meaningful bits.
>
> This fixes undefined behavior:
> runtime error: shift exponent is negative
>
> Testing with START/STOP timers in get_ue_golomb, one for the first
> branch (A) and one for the second (B), shows that there is practically no
> slowdown, e.g. for the cavs decoder:
>
> With the check in the B branch:
> 629 decicycles in get_ue_golomb B, 4194260 runs, 44 skips
> 433 decicycles in get_ue_golomb A,268434102 runs, 1354 skips
>
> Without the check:
> 624 decicycles in get_ue_golomb B, 4194273 runs, 31 skips
> 433 decicycles in get_ue_golomb A,268434203 runs, 1253 skips
>
> Since the B branch is executed far less often than the A branch, this
> change is negligible, even more so for the h264 decoder, where the ratio
> B/A is a lot smaller.
>
> Fixes: mozilla bug 1229208
> Fixes: fbeb8b2c7c996e9b91c6b1af319d7ebc/asan_heap-oob_195450f_2743_e8856ece4579ea486670be2b236099a0.bit
>
> Found-by: Tyson Smith
> Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
> Signed-off-by: Andreas Cadhalpun <Andreas.Cadhalpun at googlemail.com>
> ---
>
> Note that I just copied the "Fixes:" lines from Michael's patch, but actually
> I don't know what mozilla bug 1229208 is about, as it seems not to be public.
> Also I don't have the mentioned sample, but the patch fixes more than 1000
> of my fuzzed samples that triggered this ubsan error, so I'm confident the
> mentioned one is also fixed.
actually i think the bug number is
"Bug 1230239 - FFMPEG: shift exponent is negative in [@get_ue_golomb] "
patch should be ok
and iam also not happy about the bugs being non public
i tried unchecking "Security-Sensitive Media Bug" but i seem not to
have the power to do that but its quite possibly iam doing something
wrong
[...]
--
Michael GnuPG fingerprint: 9FF2128B147EF6730BADF133611EC787040B0FAB
I am the wisest man alive, for I know one thing, and that is that I know
nothing. -- Socrates
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 181 bytes
Desc: Digital signature
URL: <http://ffmpeg.org/pipermail/ffmpeg-devel/attachments/20151214/a56eb216/attachment.sig>
More information about the ffmpeg-devel
mailing list