This series should fix gitlab pipeline failures in riched20.
Notes: - some tests triggered an exception in KiUserCallbackDispatcher, but it's displayed back to user with ERR on seh channel, which is silenced during gitlab pipeline. Maybe this should still be displayed (eg. with MESSAGE)
From: Eric Pouech epouech@codeweavers.com
This was generating a lot of crashes in riched20 tests.
Signed-off-by: Eric Pouech epouech@codeweavers.com --- dlls/riched20/richole.c | 2 ++ 1 file changed, 2 insertions(+)
diff --git a/dlls/riched20/richole.c b/dlls/riched20/richole.c index 5bc1c30c1f2..51ae41d2fe7 100644 --- a/dlls/riched20/richole.c +++ b/dlls/riched20/richole.c @@ -5799,6 +5799,8 @@ void draw_ole( ME_Context *c, int x, int y, ME_Run *run, BOOL selected ) assert(run->nFlags & MERF_GRAPHICS); assert(run->reobj);
+ if (!run->reobj->obj.poleobj) return; + if (SUCCEEDED(IOleObject_QueryInterface(run->reobj->obj.poleobj, &IID_IViewObject, (void**)&ivo))) { HRESULT hr;
From: Eric Pouech epouech@codeweavers.com
Signed-off-by: Eric Pouech epouech@codeweavers.com --- dlls/riched20/editor.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/dlls/riched20/editor.c b/dlls/riched20/editor.c index 4b246dda9c5..ff05ba60333 100644 --- a/dlls/riched20/editor.c +++ b/dlls/riched20/editor.c @@ -4309,7 +4309,7 @@ int ME_GetTextW(ME_TextEditor *editor, WCHAR *buffer, int buflen, str = get_text( run, 0 ); } /* append '\r' to the last paragraph. */ - if (run == para_end_run( para_prev( editor_end_para( editor ) ) ) && bEOP) + if (run == para_end_run( para_prev( editor_end_para( editor ) ) ) && bEOP && buflen) { *buffer = '\r'; buffer ++;
This merge request was approved by Jinoh Kang.
some tests triggered an exception in KiUserCallbackDispatcher, but it's displayed back to user with ERR on seh channel, which is silenced during gitlab pipeline. Maybe this should still be displayed (eg. with MESSAGE)
FYI, https://gitlab.winehq.org/wine/wine/-/merge_requests/3454 allows you to disable exception-silencing behavior in window procedures. I think this is very useful in both tests and real apps.
On Thu Dec 14 14:54:57 2023 +0000, Jinoh Kang wrote:
some tests triggered an exception in KiUserCallbackDispatcher, but
it's displayed back to user with ERR on seh channel, which is silenced during gitlab pipeline. Maybe this should still be displayed (eg. with MESSAGE) FYI, https://gitlab.winehq.org/wine/wine/-/merge_requests/3454 allows you to disable exception-silencing behavior in window procedures. I think this is very useful in both tests and real apps.
Except it's specific to timer procedures. Sorry for the noise.
Why does it fail on CI, but not when I run it locally?
it did fail here... good karma on your side I guess?
Failure only happens when range_GetChar gets inlined inside ITextSelection_fnGetChar (and later functions local variables where thrashed by the overflow in buffer from the inlined function).
(so it could depend on compiler version as well ;-)
I was investigating another symptom of this, and it went away with `CFLAGS=-Og`, so it could be something like that.
This merge request was approved by Huw Davies.