On Fri Sep 22 06:50:36 2023 +0000, Aidan Khoury wrote:
> `RtlImageNtHeader` lacks proper image boundary checks for e_lfanew, so
> using it in this case is not safe.
this raises the questions does native ntdll.RtlImageHeader check for e_lfanew being within image boundary? if so, it builtin implementation has to be fixed (with test case please)
and if it doesn't you can still add the check on RtlImageHeader's returned value
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/3870#note_46285
On Thu Sep 21 20:03:38 2023 +0000, Aidan Khoury wrote:
> No, but if you supply invalidly formed images to the mspatcha.dll APIs
> it will raise an exception with code 0xE0000001. I made this a separate
> function so I could mark it as `DECLSPEC_NORETURN`.
(my question was unclear: I meant does native throw this exception?)
what does native do if the exception is continued? (I doubt this helper can be DECLSPEC_NOTRETURN)
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/3870#note_46284
> What about If I changed the commit message to winmm: MCI_MapMsgAtoW return error code directly instead of a boolean.
That's my point: it doesn't currently return a boolean, it returns a tri-state. One of those values tells the caller to skip calling `MCI_UnmapMsgAtoW()`. Your change gets rid of this.
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/3854#note_46283
This goes on top of MR 320 and 345.
--
v6: tests/shader-runner: Add a '--dump-dxil' command line switch.
tests/shader-runner: Test shaders with dxcompiler.
tests/shader-runner: Replace immediate shader type strings with an enum.
tests/shader-runner: Do not exit if a 'require' directive is not met.
tests/shader-runner: Handle individual keywords in shader directives.
vkd3d-shader/dxil: Implement DX instruction LoadInput.
vkd3d-shader/dxil: Declare shader inputs.
vkd3d-shader/dxbc: Load input signatures also from ISG1 chunks.
vkd3d-shader/spirv: Build undefined values once.
vkd3d-shader/spirv: Introduce a Static Single Assignment register type.
vkd3d-shader/d3d-asm: Trace undefined registers.
vkd3d-shader: Make the paramater allocator slab size at least MAX_REG_OUTPUT.
https://gitlab.winehq.org/wine/vkd3d/-/merge_requests/346
These are the tests from !3367 (Defer listens on addresses currently bound first by another socket). The tests marked `todo_wine` rely on a more accurate implementation of `SO_REUSEADDR`.
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/3921
Windows 10 [received support](https://devblogs.microsoft.com/commandline/af_unix-comes-to-window… for AF_UNIX sockets in Insider Build 17063. This merge request adds basic support for AF_UNIX sockets to ws2_32 and wineserver.
Of particular note is the difficulty in handling `sun_path`. Most of the functions that allow for translating Windows paths to Unix paths are not accessible from ws2_32. I considered the following options:
* Pass the Windows path to wineserver and do the conversion there.
* This is, as far as I can tell, not possible without major rearchitecting. wineserver does not have functions to translate Windows paths to Unix paths, for obvious reasons.
* Obtain the current working directory of the requesting process and temporarily change directories to there.
* This only handles relative paths and fails for absolute paths, UNC paths, etc.
* Conditionally change directories based on whether the path is relative or not.
* This is error-prone and wineserver does not have the requisite functions to do this cleanly.
I ultimately decided to pass the translated Unix path to wineserver, which changes directories to `dirname(path)`. It then provides `bind` and `connect` with `basename(path)`. This is not threadsafe, but wineserver is not (currently) multithreaded.
Abstract sockets are not fully supported by this patch, matching the behavior of Windows.
--
v59: 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/2786