I was able to replicate the issue seen in [Bug 58113](https://bugs.winehq.org/show_bug.cgi?id=58113) on my M1.
The issue stems from the usage of AudioDevicePropertyVolumeScalar, which the audio driver for the M1 does not support (at least so it appears.) Using AudioObjectIsPropertySettable allows for fast checking for this situation, including preemptively disabling main channel audio if it appears to be unsupported.
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/7920
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