cbs_h264: Fix overflow in shifts
authorMark Thompson <sw@jkqxz.net>
Sun, 11 Mar 2018 14:40:23 +0000 (14:40 +0000)
committerMark Thompson <sw@jkqxz.net>
Sun, 18 Mar 2018 17:54:55 +0000 (17:54 +0000)
commit0e782661d63b39d729b2167e75a690b4e2934740
treecf25484ebe10d89d5466f8fb497e75160f06665f
parentce1d77a5e7cebce11074bf6f9e38ad6da37338ff
cbs_h264: Fix overflow in shifts

The type of the result of a shift operation is unaffected by the type of
the right operand, so some existing code overflows with undefined behaviour
when the element length is 32.  Add a helper macro to calculate the maximum
value correctly and then use it everywhere this pattern appears.

Found-by: Andreas Rheinhardt <andreas.rheinhardt@googlemail.com>
libavcodec/cbs_h264_syntax_template.c
libavcodec/cbs_internal.h