https://bugs.documentfoundation.org/show_bug.cgi?id=145892
Bug ID: 145892 Summary: Crash (failed assert) in DBGUTIL build when inserting a section from a WEBP Product: LibreOffice Version: 7.3.0.0.alpha1+ Hardware: All OS: All Status: UNCONFIRMED Severity: normal Priority: medium Component: LibreOffice Assignee: libreoffice-bugs@lists.freedesktop.org Reporter: mikekagan...@hotmail.com CC: er...@redhat.com Created attachment 176504 --> https://bugs.documentfoundation.org/attachment.cgi?id=176504&action=edit A WEBP image ( source: https://upload.wikimedia.org/wikipedia/commons/a/a1/Johnrogershousemay2020.webp ) 1. Download the attachment. 2. In a DBGUTIL master build, create a new text document. 3. Insert->Section; select [x] Link; [ Browse ] and select the WEBP image, then [ Insert ] => Debug Error! Program: C:\lo\src\build\instdir\program\soffice.bin abort() has been called (Press Retry to debug the application) Version: 7.3.0.0.alpha1+ (x64) / LibreOffice Community Build ID: f234bea67195ee2b9c80ba0b4a18b4a81cf57cfb CPU threads: 12; OS: Windows 10.0 Build 19043; UI render: Skia/Raster; VCL: win Locale: fr-FR (ru_RU); UI: en-US Calc: CL The call stack is: > icuucd70.dll!icu_70::KhmerBreakEngine::divideUpDictionaryRange(UText * text, > int rangeStart, int rangeEnd, icu_70::UVector32 & foundBreaks, UErrorCode & > status) Line 1198 C++ > icuucd70.dll!icu_70::DictionaryBreakEngine::findBreaks(UText * text, int > startPos, int endPos, icu_70::UVector32 & foundBreaks, UErrorCode & status) > Line 83 C++ > icuucd70.dll!icu_70::RuleBasedBreakIterator::DictionaryCache::populateDictionary(int > startPos, int endPos, int firstRuleStatus, int otherRuleStatus) Line 166 C++ > icuucd70.dll!icu_70::RuleBasedBreakIterator::BreakCache::populatePreceding(UErrorCode > & status) Line 551 C++ > icuucd70.dll!icu_70::RuleBasedBreakIterator::BreakCache::previous(UErrorCode > & status) Line 291 C++ > icuucd70.dll!icu_70::RuleBasedBreakIterator::BreakCache::preceding(int > startPos, UErrorCode & status) Line 259 C++ > icuucd70.dll!icu_70::RuleBasedBreakIterator::preceding(int offset) Line 670 > C++ > i18npoollo.dll!i18npool::BreakIterator_Unicode::getLineBreak(const > rtl::OUString & Text, long nStartPos, const com::sun::star::lang::Locale & > rLocale, long nMinBreakPos, const > com::sun::star::i18n::LineBreakHyphenationOptions & hOptions, const > com::sun::star::i18n::LineBreakUserOptions & __formal) Line 508 C++ > i18npoollo.dll!i18npool::BreakIteratorImpl::getLineBreak(const rtl::OUString > & Text, long nStartPos, const com::sun::star::lang::Locale & rLocale, long > nMinBreakPos, const com::sun::star::i18n::LineBreakHyphenationOptions & > hOptions, const com::sun::star::i18n::LineBreakUserOptions & bOptions) Line > 280 C++ > swlo.dll!SwTextGuess::Guess(const SwTextPortion & rPor, SwTextFormatInfo & > rInf, const unsigned short nPorHeight) Line 409 C++ > swlo.dll!SwTextPortion::Format_(SwTextFormatInfo & rInf) Line 305 C++ > swlo.dll!SwTextPortion::Format(SwTextFormatInfo & rInf) Line 457 C++ > swlo.dll!SwTextFormatter::BuildPortions(SwTextFormatInfo & rInf) Line 552 > C++ > swlo.dll!SwTextFormatter::FormatLine(o3tl::strong_int<long,Tag_TextFrameIndex> > nStartPos) Line 1691 C++ > swlo.dll!SwTextFrame::FormatLine(SwTextFormatter & rLine, const bool bPrev) > Line 1198 C++ > swlo.dll!SwTextFrame::Format_(SwTextFormatter & rLine, SwTextFormatInfo & > rInf, const bool bAdjust) Line 1555 C++ > swlo.dll!SwTextFrame::Format_(OutputDevice * pRenderContext, SwParaPortion * > pPara) Line 1729 C++ > swlo.dll!SwTextFrame::Format(OutputDevice * pRenderContext, const > SwBorderAttrs * __formal) Line 1917 C++ > swlo.dll!SwContentFrame::MakeAll(OutputDevice * __formal) Line 1515 C++ > swlo.dll!SwFrame::OptPrepareMake() Line 399 C++ > swlo.dll!SwFrame::OptCalc() Line 1087 C++ > swlo.dll!SwLayAction::FormatContent_(const SwContentFrame * pContent, const > SwPageFrame * pPage) Line 1873 C++ > swlo.dll!SwLayAction::FormatContent(SwPageFrame * pPage) Line 1701 C++ > swlo.dll!SwLayAction::InternalAction(OutputDevice * pRenderContext) Line 587 > C++ > swlo.dll!SwLayAction::Action(OutputDevice * pRenderContext) Line 386 C++ > swlo.dll!SwViewShell::ImplEndAction(const bool bIdleEnd) Line 289 C++ > swlo.dll!SwViewShell::EndAction(const bool bIdleEnd) Line 600 C++ > swlo.dll!SwCursorShell::EndAction(const bool bIdleEnd) Line 265 C++ > swlo.dll!SwEditShell::EndAllAction() Line 102 C++ > swlo.dll!SwEditShell::InsertSection(SwSectionData & rNewData, const > SfxItemSet * const pAttr) Line 55 C++ > swuilo.dll!SwInsertSectionTabDialog::Ok() Line 1410 C++ > sfxlo.dll!SfxTabDialogController::OkHdl(weld::Button & __formal) Line 372 > C++ > sfxlo.dll!SfxTabDialogController::LinkStubOkHdl(void * instance, weld::Button > & data) Line 360 C++ > vcllo.dll!Link<weld::Button &,void>::Call(weld::Button & data) Line 111 > C++ > vcllo.dll!weld::Button::signal_clicked() Line 1406 C++ > vcllo.dll!SalInstanceButton::ClickHdl(Button * pButton) Line 2663 C++ > vcllo.dll!SalInstanceButton::LinkStubClickHdl(void * instance, Button * data) > Line 2650 C++ > vcllo.dll!Link<Button *,void>::Call(Button * data) Line 111 C++ > vcllo.dll!Button::Click::__l2::<lambda>() Line 130 C++ > vcllo.dll!std::invoke<void <lambda>(void) &>(Button::Click::__l2::void > <lambda>(void) & _Obj) Line 1481 C++ > vcllo.dll!std::_Invoker_ret<void,1>::_Call<void <lambda>(void) > &>(Button::Click::__l2::void <lambda>(void) & _Func) Line 665 C++ > vcllo.dll!std::_Func_impl_no_alloc<void <lambda>(void),void>::_Do_call() Line > 836 C++ > vcllo.dll!std::_Func_class<void>::operator()() Line 883 C++ > vcllo.dll!Control::ImplCallEventListenersAndHandler(VclEventId nEvent, const > std::function<void __cdecl(void)> & callHandler) Line 313 C++ > vcllo.dll!Button::Click() Line 130 C++ > vcllo.dll!PushButton::Tracking(const TrackingEvent & rTEvt) Line 1255 C++ > vcllo.dll!vcl::Window::EndTracking(TrackingEventFlags nFlags) Line 310 > C++ > vcllo.dll!ImplHandleMouseEvent(const VclPtr<vcl::Window> & xWindow, > MouseNotifyEvent nSVEvent, bool bMouseLeave, __int64 nX, __int64 nY, unsigned > __int64 nMsgTime, unsigned short nCode, MouseEventModifiers nMode) Line 699 > C++ > vcllo.dll!ImplHandleSalMouseButtonUp(vcl::Window * pWindow, const > SalMouseEvent * pEvent) Line 2080 C++ > vcllo.dll!ImplWindowFrameProc(vcl::Window * _pWindow, SalEvent nEvent, const > void * pEvent) Line 2435 C++ > vcllo.dll!SalFrame::CallCallback(SalEvent nEvent, const void * pEvent) Line > 308 C++ > vclplug_winlo.dll!ImplHandleMouseMsg(HWND__ * hWnd, unsigned int nMsg, > unsigned __int64 wParam, __int64 lParam) Line 3163 C++ > vclplug_winlo.dll!SalFrameWndProc(HWND__ * hWnd, unsigned int nMsg, unsigned > __int64 wParam, __int64 lParam, bool & rDef) Line 5535 C++ > vclplug_winlo.dll!SalFrameWndProcW(HWND__ * hWnd, unsigned int nMsg, unsigned > __int64 wParam, __int64 lParam) Line 5888 C++ > user32.dll!00007ffc335ce7e8() Unknown > user32.dll!00007ffc335ce229() Unknown > vclplug_winlo.dll!ImplSalDispatchMessage(const tagMSG * pMsg) Line 416 > C++ > vclplug_winlo.dll!ImplSalYield(bool bWait, bool bHandleAllCurrentEvents) Line > 493 C++ > vclplug_winlo.dll!WinSalInstance::DoYield(bool bWait, bool > bHandleAllCurrentEvents) Line 522 C++ > vcllo.dll!ImplYield(bool i_bWait, bool i_bAllEvents) Line 465 C++ > vcllo.dll!Application::Yield() Line 533 C++ > vcllo.dll!Application::Execute() Line 444 C++ > sofficeapp.dll!desktop::Desktop::Main() Line 1601 C++ > vcllo.dll!ImplSVMain() Line 199 C++ > vcllo.dll!SVMain() Line 232 C++ > sofficeapp.dll!soffice_main() Line 98 C++ > soffice.bin!sal_main() Line 49 C > soffice.bin!main(int argc, char * * argv) Line 47 C > soffice.bin!invoke_main() Line 79 C++ > soffice.bin!__scrt_common_main_seh() Line 288 C++ > soffice.bin!__scrt_common_main() Line 331 C++ > soffice.bin!mainCRTStartup(void * __formal) Line 17 C++ > kernel32.dll!00007ffc337f7034() Unknown > ntdll.dll!00007ffc33b42651() Unknown Since it's ICU, maybe erAck has an idea what is wrong? (Yes I know that WEBP is not a plain text file, as LibreOffice treats it; but it must not crash it, right? For the record: I came across it while debugging tdf#145875, which shows insert section dialog in strange cases.) -- You are receiving this mail because: You are the assignee for the bug.