The docs say it should be released in the last CryptMsgUpdate, but tests show
it's actually released in CryptMsgClose. So let's do the same.
This solve a use-after-free issue for signed messages, because they contains
HCRYPTHASH objects which references the context internally, and will use it
in CryptDestroyHash. If the context is released in CSignedEncodeMsg_Open, this
will be a use-after-free.
--
v2: crypt32: Don't release context in CSignedEncodeMsg_Open.
https://gitlab.winehq.org/wine/wine/-/merge_requests/8376
Follow-up of !2786, which appears to have been abandoned.
Depends on !8182
# Execute minimal test case
1. in dlls/ws2_32/tests/sock.c wrap all calls to test functions after `Init()` until `test_afunix()` with #if 0 ... #endif
2. checkout wine into ~/src/wine
3. build into ~/src/wine-build
4. run `(cd ~/src/wine-build; WINEPREFIX=~/src/wine/.wine ../wine/tools/runtest -q -P wine -T . -M ws2_32.dll -p dlls/ws2_32/tests/i386-windows/ws2_32_test.exe sock)`
# How to debug wineserver
Since `wineserver` runs in the background, simple calls to printf() will show nothing when the test case is executed. A workaround is to open a file and call fprintf() to write debug messages to this file, which can then be inspected.
--
v30: ws2_32: Add note in bind() for AF_UNIX sockets
ws2_32/tests: In tests for AF_UNIX sockets print actual directory used
ws2_32/tests: In AF_UNIX socket tests always print used path in case of errors
ws2_32/tests: Add test for AF_UNIX sockets
server: Fix getsockname() and accept() on AF_UNIX sockets.
server: Introduce error when attempting to create a SOCK_DGRAM AF_UNIX socket.
server: Allow for deletion of socket files.
ws2_32: Add support for AF_UNIX sockets.
ws2_32: Add afunix.h header.
https://gitlab.winehq.org/wine/wine/-/merge_requests/7650