Wine applications crash in VNC/headless environments due to invalid all-zero monitor coordinates.
The root cause is:
- Environment Issue: VNC systems report all displays as RR_Disconnected
- Faulty Fallback: Wine incorrectly reverts to legacy XRandR 1.0 API when no "connected" displays are detected
- API Incompatibility: Modern XRandR 1.6 doesn't support Wine's XRandR 1.0 implementation, causing XRRSizes() to return empty display modes
- Uninitialized Data: This leaves critical display fields (dmPelsWidth/Height) at initialization value 0
--
v2: winex11: handle fallback display modes when XRandR fails
server: prevent division by zero in coordinate mapping
https://gitlab.winehq.org/wine/wine/-/merge_requests/8216
Wine applications crash in VNC/headless environments due to invalid all-zero monitor coordinates.
The root cause is:
Environment Issue: VNC systems report all displays as RR_Disconnected
Faulty Fallback: Wine incorrectly reverts to legacy XRandR 1.0 API when no "connected" displays are detected
API Incompatibility: Modern XRandR 1.6 doesn't support Wine's XRandR 1.0 implementation, causing XRRSizes() to return empty display modes
Uninitialized Data: This leaves critical display fields (dmPelsWidth/Height) at initialization value 0
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/8216
If the "Properties" button is clicked in the printdlg it opens the print properties dlg. The problem is the values set in the properties dlg don't get passed through correctly to the final printing stage. This prevents properties like duplex and page size from working.
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/8220
Please see: https://marc.info/?l=wine-devel&m=174715050805731 as well as the commit messages for more information.
--
v6: 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.
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
In native Windows, the COPY command will display the names of the files as they are copied. Wine should do the same. This change enables that.
--
v6: cmd: COPY should output file names as they are copied.
cmd/tests: Add tests for unexpected COPY filename output.
https://gitlab.winehq.org/wine/wine/-/merge_requests/8200
OSmesa is deprecated and has been removed from latest mesa releases, this replaces it with pbuffer rendering and flushing of the surface onto the bitmap at some specific sync points. The tests show that this is roughly how Windows seem to behave anyway, instead of rendering directly to the memory as OSmesa does.
--
v3: win32u: Remove now unnecessary context and pbuffer funcs.
win32u: Drop now unnecessary OSMesa dependency.
win32u: Use a pbuffer to implement GL on memory DCs.
opengl32/tests: Relax memory DC pixel format selection.
opengl32: Expose every pixel format on memory DCs.
winex11: Check XVisualInfo vs GLXFBConfig depth to avoid BadMatch.
winex11: Flag offscreen formats as bitmap compatible if possible.
winemac: Use opengl_funcs for glFlush.
winex11: Use opengl_funcs for glFlush / glFinish.
opengl32: Move glFlush / glFinish hooking from win32u.
win32u: Avoid closing NULL egl_handle on dlopen failure.
https://gitlab.winehq.org/wine/wine/-/merge_requests/8210
d2d_fp_fast_expansion_sum_zeroelim contains many instances of this pattern:
```c
if (a_idx < a_len)
{
use(a_curr);
a_curr = a[++a_idx];
}
```
Here if a_idx is already a_len - 1, a[++a_idx] reads past the last element of a.
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/8213
OSmesa is deprecated and has been removed from latest mesa releases, this replaces it with pbuffer rendering and flushing of the surface onto the bitmap at some specific sync points. The tests show that this is roughly how Windows seem to behave anyway, instead of rendering directly to the memory as OSmesa does.
--
v2: win32u: Remove now unnecessary context and pbuffer funcs.
win32u: Drop now unnecessary OSMesa dependency.
win32u: Use a pbuffer to implement GL on memory DCs.
opengl32: Expose every pixel format on memory DCs.
winex11: Check XVisualInfo vs GLXFBConfig depth to avoid BadMatch.
winex11: Flag offscreen formats as bitmap compatible if possible.
winemac: Use opengl_funcs for glFlush.
winex11: Use opengl_funcs for glFlush / glFinish.
opengl32: Move glFlush / glFinish hooking from win32u.
win32u: Avoid closing NULL egl_handle on dlopen failure.
https://gitlab.winehq.org/wine/wine/-/merge_requests/8210
OSmesa is deprecated and has been removed from latest mesa releases, this replaces it with pbuffer rendering and flushing of the surface onto the bitmap at some specific sync points. The tests show that this is roughly how Windows seem to behave anyway, instead of rendering directly to the memory as OSmesa does.
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/8210
--
v2: ucrtbase: Fix case mapping and ctype1 tables for utf8 locale.
ucrtbase: Fix CP_UTF8 handling in _tolower_l.
ucrtbase: Fix CP_UTF8 handling in _toupper_l.
msvcrt: Print FIXME when WideCharToMultiByte() fails in create_locinfo().
https://gitlab.winehq.org/wine/wine/-/merge_requests/8198