Commit Graph
7 Commits
Author SHA1 Message Date
Chris c8474c515c Avoid signed overflow in bs_read_se() (#2071)
bs_read_ue() can return values above INT32_MAX. bs_read_se() stored the
result in an int32_t and computed (r+1)/2, which is undefined behavior
when the code is 0x7FFFFFFF and gives wrong values for codes above
INT32_MAX. The SPS being parsed comes from the host during the H.264
SPS fixup.

Do the conversion in unsigned arithmetic. bs_read_ue() returns at most
0xFFFFFFFE, so both branches produce in-range int32_t values, and every
code that was previously well-defined decodes to the same value.
2026-10-24 18:17:00 -05:00
Cameron Gutman 9b8886a6f5 Fix integer truncation warning on MSVC 2026-10-19 00:15:26 -05:00
Cameron Gutman 289782c6f3 Fix possible UB shift in bs_write_u() for large values of n 2026-10-14 01:51:15 -05:00
Cameron Gutman a57e947d71 Re-add the h264bitstream file headers mistakenly removed during vendoring 2026-10-07 20:19:06 -05:00
Cameron Gutman 7794a42843 Fix C4146 warning on MSVC 2026-07-26 20:12:58 -05:00
Cameron Gutman 3e24a7a1a5 Fix several bugs in h264bitstream 2026-07-26 19:23:34 -05:00
Cameron Gutman b7adc70ea4 Import minimal set of code from h264bitstream needed for SPS fixups 2026-07-26 19:23:34 -05:00