Please see: https://marc.info/?l=wine-devel&m=174715050805731 as well as the commit messages for more information.
--
v5: ntdll: Report more info about heap problems detected by ASan.
ntdll: Show (partial) stack trace in ASan reports.
ntdll: Add heap quarantine for ASan.
ntdll: Add asan poisoning and redzoning to heap allocator
ntdll: Implement ASan fake stack.
ntdll: Don't use address of local variables as the frame address.
ntdll: During unwind, also check if frame is on fake stack.
ntdll: Implement __asan_{un,}poison_memory_region.
ntdll: Make sure to not write into poisoned memory in KeUserModeCallback.
ntdll: Implement __asan_set_shadow_*.
ntdll: Implement reporting of ASan errors.
ntdll: Implement __asan_{memory,region}_is_poisoned.
ntdll: Implement __asan_{un,}poison_stack_memory.
ntdll: Unpoison stack in __asan_handle_no_return.
ntdll: Add API for checking whether address is in fake stack frame.
kernel32: Check for poison in LocalLock if ASan is enabled.
kernel32: Fix ASan reports in IsBad*
ntdll: Call __asan_handle_no_return in RtlRestoreContext.
makedep: Support sanitizer flags.
asan_dynamic_thunk: Add ASan dynamic thunk for DLLs.
This merge request has too many patches to be relayed via email.
Please visit the URL below to see the contents of the merge request.
https://gitlab.winehq.org/wine/wine/-/merge_requests/8026
--
v2: widl: Write the guid stream.
widl: Write the blob stream.
widl: Write the user string stream.
widl: Write the string stream.
widl: Initial support for generating Windows Runtime metadata.
https://gitlab.winehq.org/wine/wine/-/merge_requests/8037
1. Changed fixed-size buffer to dynamic allocation for link_name to
prevent buffer overflow
2. Added proper memory cleanup with HeapFree in all error paths
3. Fixed potential null pointer dereference when device is NULL
4. Improved error handling by checking memory allocation success
The original code used a fixed-size buffer (15 chars) which could
overflow with long device names. The new version dynamically allocates
memory based on actual device name length, includes proper cleanup, and
handles edge cases better.
Signed-off-by: Wei Xie <xiewei(a)uniontech.com>
--
v3: kernel32/tests: add missing DefineDosDeviceW test cases
https://gitlab.winehq.org/wine/wine/-/merge_requests/8041
1. Changed fixed-size buffer to dynamic allocation for link_name to
prevent buffer overflow
2. Added proper memory cleanup with HeapFree in all error paths
3. Fixed potential null pointer dereference when device is NULL
4. Improved error handling by checking memory allocation success
The original code used a fixed-size buffer (15 chars) which could
overflow with long device names. The new version dynamically allocates
memory based on actual device name length, includes proper cleanup, and
handles edge cases better.
Signed-off-by: Wei Xie <xiewei(a)uniontech.com>
--
v2: fix: add missing DefineDosDeviceW test cases
kernelbase: fix memory allocation in DefineDosDeviceW
https://gitlab.winehq.org/wine/wine/-/merge_requests/8041
This MR modifies winegstreamer to match Windows behaviour in that:
1. the video decoders will output the PTS and duration of the input sample (if provided); and
2. the WMV decoder will set any value not provided to zero
It also adds support for supplying a DTS value to the MFTs.
I've marked this as draft as it fixes the tests in MR !7563 (in addition to fixing some existing `test_wmv_decoder` tests). Also, as demonstrated in MR !7569, our demuxers output different timestamps to Windows. This change will result in those different timestamps being forwarded from the decoder. So we may also want to address that difference prior to accepting this MR.
--
v10: winegstreamer: Fixup negative input timestamps.
winegstreamer: Don't generate sample timestamps for the WMV decoder.
winegstreamer: Avoid rounding errors when generating timestamps.
winegstreamer: Use provided PTS and duration in video_decoder.
mf/tests: Add negative timestamp tests for h264.
https://gitlab.winehq.org/wine/wine/-/merge_requests/7623
Windows uses a smaller alignment than gstreamer for some formats, for
example NV12. This means we cannot use MFCalculateImageSize() to get the
output sample size. Commit 7b79e3a87b1e switched to calling it instead of
GetOutputStreamInfo() to fix some game bugs.
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/8034
First push with null patch, to get current gitlab runner result in [pipeline #42287](https://gitlab.winehq.org/bernhardu/wine/-/pipelines/42287).
Unfortunately, did not fail this time.
Older examples are:
- [job #157583](https://gitlab.winehq.org/wine/wine/-/jobs/157583#L2282)
- [job #157314](https://gitlab.winehq.org/wine/wine/-/jobs/157314#L1957)
- [job #157131](https://gitlab.winehq.org/wine/wine/-/jobs/157131#L2052)
- [job #157068](https://gitlab.winehq.org/wine/wine/-/jobs/157068#L1955)
- [job #157032](https://gitlab.winehq.org/wine/wine/-/jobs/157032#L2150)
- [job #156785](https://gitlab.winehq.org/wine/wine/-/jobs/156785#L2112)
- [job #156713](https://gitlab.winehq.org/wine/wine/-/jobs/156713#L2048)
- [job 156677#](https://gitlab.winehq.org/wine/wine/-/jobs/156677#L2030)
So happens just a few times per day.
The value -1073741510 in `timeout.exe:timeout:06b4 done (-1073741510) in 5s 177B` equals to 0xC000013A, STATUS_CONTROL_C_EXIT. Therefore the assumption the ctrl-c from the test reaches sometimes the parent process.
With the patch activated, this [pipeline #42291](https://gitlab.winehq.org/bernhardu/wine/-/pipelines/42291).
--
v5: timeout/tests: Move the ctrl-c tests below an intermediate process.
https://gitlab.winehq.org/wine/wine/-/merge_requests/8051
Supersedes !7928 with some test tweaks:
* Test that shutdown waits for any queued handler,
* Use message loop only when necessary (DQTYPE_THREAD_CURRENT),
* Remove some non-deterministic refcount checks after shutdown, as dispatch thread might still hold some until it exits.
--
v2: coremessaging: Partially implement CreateDispatcherQueueController().
coremessaging/tests: Add CreateDispatcherQueueController() tests.
coremessaging/tests: Add IDispatcherQueueControllerStatics::CreateOnDedicatedThread() tests.
coremessaging: Add IDispatcherQueueControllerStatics stub.
https://gitlab.winehq.org/wine/wine/-/merge_requests/8055
Please see: https://marc.info/?l=wine-devel&m=174715050805731 as well as the commit messages for more information.
--
v4: ntdll: Report more info about heap problems detected by ASan.
ntdll: Show (partial) stack trace in ASan reports.
ntdll: Add heap quarantine for ASan.
ntdll: Add asan poisoning and redzoning to heap allocator
ntdll: Implement ASan fake stack.
ntdll: Don't use address of local variables as the frame address.
ntdll: During unwind, also check if frame is on fake stack.
ntdll: Implement __asan_{un,}poison_memory_region.
ntdll: Make sure to not write into poisoned memory in KeUserModeCallback.
ntdll: Implement __asan_set_shadow_*.
ntdll: Implement reporting of ASan errors.
ntdll: Implement __asan_{memory,region}_is_poisoned.
ntdll: Implement __asan_{un,}poison_stack_memory.
ntdll: Unpoison stack in __asan_handle_no_return.
ntdll: Add API for checking whether address is in fake stack frame.
kernel32: Check for poison in LocalLock if ASan is enabled.
kernel32: Fix ASan reports in IsBad*
ntdll: Call __asan_handle_no_return in RtlRestoreContext.
makedep: Support sanitizer flags.
asan_dynamic_thunk: Add ASan dynamic thunk for DLLs.
ntdll: Add stub ASan runtime.
loader: Disable sanitization.
configure: Check for sanitizer support.
This merge request has too many patches to be relayed via email.
Please visit the URL below to see the contents of the merge request.
https://gitlab.winehq.org/wine/wine/-/merge_requests/8026
This fixes an issue seen with Steam, which calls `WinHttpGetProxyForUrl()` before pinging WebSocket servers to determine which has the lowest latency. The `WinHttpGetProxyForUrl()`/`WinHttpDetectAutoProxyConfigUrl()` call seems to be included in the timing, and `WinHttpDetectAutoProxyConfigUrl()` taking too long can cause the ping to time out/fail.
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/8049
First push with null patch, to get current gitlab runner result in [pipeline #42287](https://gitlab.winehq.org/bernhardu/wine/-/pipelines/42287).
Unfortunately, did not fail this time.
Older examples are:
- [job #157583](https://gitlab.winehq.org/wine/wine/-/jobs/157583#L2282)
- [job #157314](https://gitlab.winehq.org/wine/wine/-/jobs/157314#L1957)
- [job #157131](https://gitlab.winehq.org/wine/wine/-/jobs/157131#L2052)
- [job #157068](https://gitlab.winehq.org/wine/wine/-/jobs/157068#L1955)
- [job #157032](https://gitlab.winehq.org/wine/wine/-/jobs/157032#L2150)
- [job #156785](https://gitlab.winehq.org/wine/wine/-/jobs/156785#L2112)
- [job #156713](https://gitlab.winehq.org/wine/wine/-/jobs/156713#L2048)
- [job 156677#](https://gitlab.winehq.org/wine/wine/-/jobs/156677#L2030)
So happens just a few times per day.
The value -1073741510 in `timeout.exe:timeout:06b4 done (-1073741510) in 5s 177B` equals to 0xC000013A, STATUS_CONTROL_C_EXIT. Therefore the assumption the ctrl-c from the test reaches sometimes the parent process.
With the patch activated, this [pipeline #42291](https://gitlab.winehq.org/bernhardu/wine/-/pipelines/42291).
--
v4: timeout/tests: Move the ctrl-c test below a intermediate process.
https://gitlab.winehq.org/wine/wine/-/merge_requests/8051
Please see: https://marc.info/?l=wine-devel&m=174715050805731 as well as the commit messages for more information.
--
v3: ntdll: Report more info about heap problems detected by ASan.
ntdll: Show (partial) stack trace in ASan reports.
ntdll: Add heap quarantine for ASan.
ntdll: Add asan poisoning and redzoning to heap allocator
ntdll: Implement ASan fake stack.
ntdll: Don't use address of local variables as the frame address.
ntdll: During unwind, also check if frame is on fake stack.
ntdll: Implement __asan_{un,}poison_memory_region.
ntdll: Make sure to not write into poisoned memory in KeUserModeCallback.
ntdll: Implement reporting of ASan errors.
This merge request has too many patches to be relayed via email.
Please visit the URL below to see the contents of the merge request.
https://gitlab.winehq.org/wine/wine/-/merge_requests/8026
This MR modifies winegstreamer to match Windows behaviour in that:
1. the video decoders will output the PTS and duration of the input sample (if provided); and
2. the WMV decoder will set any value not provided to zero
It also adds support for supplying a DTS value to the MFTs.
I've marked this as draft as it fixes the tests in MR !7563 (in addition to fixing some existing `test_wmv_decoder` tests). Also, as demonstrated in MR !7569, our demuxers output different timestamps to Windows. This change will result in those different timestamps being forwarded from the decoder. So we may also want to address that difference prior to accepting this MR.
--
v9: winegstreamer: Use provided PTS and duration in video_decoder.
mf/tests: Add negative timestamp tests for h264.
https://gitlab.winehq.org/wine/wine/-/merge_requests/7623
First push with null patch, to get current gitlab runner result in [pipeline #42287](https://gitlab.winehq.org/bernhardu/wine/-/pipelines/42287).
Unfortunately, did not fail this time.
Older examples are:
- [job #157583](https://gitlab.winehq.org/wine/wine/-/jobs/157583#L2282)
- [job #157314](https://gitlab.winehq.org/wine/wine/-/jobs/157314#L1957)
- [job #157131](https://gitlab.winehq.org/wine/wine/-/jobs/157131#L2052)
- [job #157068](https://gitlab.winehq.org/wine/wine/-/jobs/157068#L1955)
- [job #157032](https://gitlab.winehq.org/wine/wine/-/jobs/157032#L2150)
- [job #156785](https://gitlab.winehq.org/wine/wine/-/jobs/156785#L2112)
- [job #156713](https://gitlab.winehq.org/wine/wine/-/jobs/156713#L2048)
- [job 156677#](https://gitlab.winehq.org/wine/wine/-/jobs/156677#L2030)
So happens just a few times per day.
The value -1073741510 in `timeout.exe:timeout:06b4 done (-1073741510) in 5s 177B` equals to 0xC000013A, STATUS_CONTROL_C_EXIT. Therefore the assumption the ctrl-c from the test reaches sometimes the parent process.
With the patch activated, this [pipeline #42291](https://gitlab.winehq.org/bernhardu/wine/-/pipelines/42291).
--
v3: TEMP: gitlab: Just run timeout.exe with test-linux-32.
https://gitlab.winehq.org/wine/wine/-/merge_requests/8051
In service processes, `get_desktop_window` only creates a fake window
owned by the first calling thread, with only a handle and no client-side
object.
Before 9d6455f91cb7a7d166d5c4708d528b43a63eb4d7 `get_window_thread` was
returning an error (called from `send_message` > `process_message`) in
that case, as client-side object is missing.
After the commit, we only check handle existence and we now return
success and then try to send/process the desktop window message, waiting
for explorer startup which never happens.
Fixes: 9d6455f91cb7a7d166d5c4708d528b43a63eb4d7
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/8046
These patches fix painting in an application that draws outside of a CS_PARENTDC child
client area in its WM_PAINT handler.
Comments and suggestions are welcome.
--
v5: win32u: Don't clip update region to the window client rectangle.
win32u: GetUpdateRect() should clip update rectangle to the window client area.
win32u: GetUpdateRgn() should clip update region to the window client area.
win32u: Clip PAINTSTRUCT.rcPaint to the window client area.
server: Don't generate WM_PAINT messages for minimized windows.
server: For a CS_PARENTDC child use parent for visible region calculations.
server: If the being validated region covers whole window then validate everything.
https://gitlab.winehq.org/wine/wine/-/merge_requests/5665
Supersedes !7928 with some test tweaks:
* Test that shutdown waits for any queued handler,
* Use message loop only when necessary (DQTYPE_THREAD_CURRENT),
* Remove some non-deterministic refcount checks after shutdown, as dispatch thread might still hold some until it exits.
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/8055
First push with null patch, to get current gitlab runner result in [#42287](https://gitlab.winehq.org/bernhardu/wine/-/pipelines/42287).
--
v2: timeout/tests: Ignore ctrl-c in the parent process.
https://gitlab.winehq.org/wine/wine/-/merge_requests/8051
Main goal of this serie is to load compilands on demand.
It mainly adds methods to ensure that relevant compiland
is loaded when needed, then fallbacks to using loaded
symt.
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/8052
In CopyFileEx, and DeleteFile functions, by default, the file name
and path are limited to MAX_PATH characters. To extend this limit
to 32,767 wide characters, need prepend "\\\\?\\" to the path.
--
v7: kernelbase: Limit the maximum path length for DeleteFile.
kernelbase: Fix DeleteFileA doesn't support long path.
kernelbase: Limit the maximum path length for filesystem.
ntdll: Check if long path aware is enabled.
kernel32/tests: Add tests for maximum path length limitation.
https://gitlab.winehq.org/wine/wine/-/merge_requests/7540
This is mostly a precursor to the attribute nodes implementation for IE9+ modes later, since most of them are stubs in legacy modes. There's also no way to insert them in legacy modes via node props either, since they don't expose IHTMLDOMNode* interfaces.
--
v2: mshtml: Implement removeChild for attributes.
mshtml: Implement replaceChild for attributes.
mshtml: Implement nextSibling prop for attributes.
mshtml: Implement previousSibling prop for attributes.
mshtml: Implement lastChild prop for attributes.
mshtml: Implement firstChild prop for attributes.
mshtml: Implement childNodes prop for attributes.
mshtml: Implement hasChildNodes for attributes.
mshtml: Implement insertBefore for attributes.
mshtml: Implement appendChild for attributes.
mshtml: Implement cloneNode for attributes.
mshtml: Implement ownerDocument prop for attributes.
mshtml: Implement attributes prop for attributes.
mshtml: Implement nodeType prop for attributes.
https://gitlab.winehq.org/wine/wine/-/merge_requests/8029
That was puzzling because ntdll.RtlQueryRegistryValues() affected is not called in Wine anywhere besides ntoskrnl tests in the driver and ntdll reg tests. The effect of this exact commit was effectively re-enabling ntoskrnl tests which were broken after ccb99cd00f55b716e3aa1a80ff4b13a6d6fa70d6.
Rémi found that the problem may be reproduced locally by running "winetest.exe -q -o - dinput ntoskrnl.exe services.exe", these three tests together. And that reproduces with both ccb99cd00f55b716e3aa1a80ff4b13a6d6fa70d6 and this commit reverted, while what actually triggered the present breakage was bisected to 9d6455f91cb7a7d166d5c4708d528b43a63eb4d7 (AFAIK Rémi is looking into that).
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/8027#note_103386
This is mostly a precursor to the attribute nodes implementation for IE9+ modes later, since most of them are stubs in legacy modes. There's also no way to insert them in legacy modes via node props either, since they don't expose IHTMLDOMNode* interfaces.
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/8029
--
v4: d3dx9: Don't color key compressed pixel formats on 32-bit d3dx9.
d3dx9: Calculate a range of color key channel values in d3dx_load_pixels_from_pixels() if necessary.
d3dx9: Set all color channels to zero when color keying.
d3dx9/tests: Add some color key tests.
https://gitlab.winehq.org/wine/wine/-/merge_requests/7711
This MR modifies winegstreamer to match Windows behaviour in that:
1. the video decoders will output the PTS and duration of the input sample (if provided); and
2. the WMV decoder will set any value not provided to zero
It also adds support for supplying a DTS value to the MFTs.
I've marked this as draft as it fixes the tests in MR !7563 (in addition to fixing some existing `test_wmv_decoder` tests). Also, as demonstrated in MR !7569, our demuxers output different timestamps to Windows. This change will result in those different timestamps being forwarded from the decoder. So we may also want to address that difference prior to accepting this MR.
--
v8: winegstreamer: Use provided PTS and duration in video_decoder.
https://gitlab.winehq.org/wine/wine/-/merge_requests/7623
GetResults on IInspectable async operation is supposed to clear the
async reference too but we don't do that yet. Releasing the async first
makes the refcount non-deterministic as the task may hold onto the
results for a bit longer, this reverts this part from the commit below
and flags the refcount test as todo_wine.
Fixes: 82771d3343bffca73873de4029149de0197d88c9
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/8039
This serie mainly:
- fix remaining code quality warnings,
- move creation of symt inside new PDB reader; it
doesn't change (yet) the old logic of creating
all symbolic information at debug info init.
--
v2: dbghelp: Create all symt* from new PDB reader.
dbghelp: Build compiland table for new PDB reader.
dbghelp: Beef up reading compiland header helper.
dbghelp: Load global symbols from DBI.
dbghelp: Return method_result from pdb_reader_request_cv_typeid.
dbghelp: Get rid of code quality warning.
https://gitlab.winehq.org/wine/wine/-/merge_requests/8025
Signed-off-by: YeshunYe <yeyeshun(a)uniontech.com>
Change-Id: I2a8099278fae6dcc45bc92fb1f1f606407fba000
Although MSDN does not mention that CreateFile can be used to create folders, it is actually supported.
Verified on WinXP, Win7, and Win10.
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/8033