https://bugs.winehq.org/show_bug.cgi?id=49345
Bug ID: 49345 Summary: widl generates incorrect correlation descriptor for an embedded conformant array Product: Wine Version: 5.10 Hardware: x86 OS: Linux Status: NEW Severity: normal Priority: P2 Component: rpc Assignee: wine-bugs@winehq.org Reporter: dmitry@baikal.ru Distribution: ---
I've submitted a test case for this widl bug: https://source.winehq.org/patches/data/186613
In order to see the bug one needs to remove #ifdef'ed code in server.idl. Without '#if 0' widl generates broken format strings and the tests crash under Windows and Wine.
As far as I can see widl generates incorrect memory offsets for embedded structure fields with size_is() attribute, NdrSimpleStructBufferSize() calculates wrong size, and later calls in the client/server stubs lead to memory corruption.