GCC12.2 warns about dereferencing a pointer to RpcPktHdr
while it has been allocated to the size of one of the packet
(hence smaller in some cases).
/home/eric/work/wine/dlls/rpcrt4/rpc_message.c:111:26: warning: array subscript 'RpcPktHdr[0]' is partly outside array bounds of 'unsigned char[24]' [-Warray-bounds]
111 | Header->common.rpc_ver = RPC_VER_MAJOR;
This patch fixes the warnings by accessing the created object
through a pointer to their type (and not through the union).
Notes:
- the 'max(sizeof(...), FIELD_OFFSET(...))' thingie in
RPCRT4_BuildBindNackHeader avoids also a warning as the
FIELD_OFFSET() can be smaller than the size of the structure.
This could be avoided by using a flexible array member for
the 'protocols' field instead of 'protocols[ANYSIZE_ARRAY]'.
- I only changed the allocation routines when the allocated size
is smaller than the union.
If the strategy is validated, one could consider applying the
same allocation strategy to all helpers for symmetry reasons.
Hence the draft status for now, waiting for feedback.
Signed-off-by: Eric Pouech <eric.pouech(a)gmail.com>
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/1545
In this patch set, GetOutputType() currently fails for NV11 and the following RGB types because MFCalculateImageSize() fails for them. I'll fix MFCalculateImageSize() for them recently (but not in this patch set).
--
v2: winegstreamer: Implement GetOutputType for WMV decoder.
winegstreamer: Add RGB8, IYUV, NV11 to wg_video_format.
mf/tests: Test info headers returned by GetOutputType for WMV decoder.
mf/tests: Test GetOutputType for WMV decoder.
https://gitlab.winehq.org/wine/wine/-/merge_requests/1707