When button_count is 0, we would allocate 0 bytes for line_widths, but later line_count would be 1
so we would still try to access line_widths[0] which is out-of-bound.
--
v2: comctl32: Make sure line_widths is big enough.
https://gitlab.winehq.org/wine/wine/-/merge_requests/8205
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.
--
v4: cmd/tests: Add tests for unexpected COPY filename output.
https://gitlab.winehq.org/wine/wine/-/merge_requests/8200
Windows allows closure of a waitable timer handle while a work item is
waiting on it. Also, the current Wine ntdll implementation calls
NtWaitForMultipleObjects() on multiple handles if multiple items are
pending, and if one handle is not valid, no items will execute.
Btw there are occurrences of `INVALID_HANDLE_VALUE` elsewhere, e.g. in `RtlDeleteTimer()`, which I think are incorrect, unless Windows internals are inconsistent with its use.
--
v2: ntdll: Duplicate handles for thread pool waits.
ntdll: Initialise waitable handles with NULL.
ntdll/tests: Test early closure of handles used for threadpool waits.
https://gitlab.winehq.org/wine/wine/-/merge_requests/8191
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.
--
v3: cmd: COPY should output file names as they are copied.
https://gitlab.winehq.org/wine/wine/-/merge_requests/8200
When page creation fails in PROPSHEET_SetCurSel, the dialog window is destroyed, which means the
attached PropSheetInfo (psInfo) is freed. Because there is a call to PROPSHEET_SetCurSel in the
handling of WM_INITDIAG, any use of psInfo thereafter could be invalid, which wasn't taken into
account.
* * *
this feels a bit iffy but i think this is the right fix? previously we got 0 return value from `PropertySheet` because `do_loop` calls `IsWindow(hwnd)`, and when page creation failed the `hwnd` is destroyed, which resulted in `do_loop` returning 0. i just duplicated this check in `PROPSHEET_PropertySheet` too. as for the change in `DiaglogProc`, if `PROPSHEET_SetCurSel` destroyed the window then the SendMessageW isn't necessary, i believe?
also, this bit is redundant i think?
```c
/* wizards set their focus during init */
if (psInfo->ppshheader.dwFlags & INTRNL_ANY_WIZARD)
return FALSE;
return FALSE;
```
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/8204
When button_count is 0, we would allocate 0 bytes for line_widths, but later line_count would be 1
so we would still try to access line_widths[0] which is out-of-bound.
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/8205
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.
--
v2: cmd: COPY should output file names as they are copied.
https://gitlab.winehq.org/wine/wine/-/merge_requests/8200