2 Nov
2022
2 Nov
'22
4:15 p.m.
Giovanni Mascellani (@giomasce) commented about libs/vkd3d-shader/dxil.c:
+ + if (!length) + return 0; + + if (shader_sm6_is_end(parser)) + { + parser->failed = true; + return 0; + } + + flag = 1 << (length - 1); + mask = flag - 1; + do + { + bits = shader_sm6_read_bits(parser, length); + result |= (uint64_t)(bits & mask) << shift; We should probably check when `shift` becomes 64 or larger and produce an error if it does. We shouldn't invoke undefined behavior even on invalid input streams.
-- https://gitlab.winehq.org/wine/vkd3d/-/merge_requests/44#note_12820