Apache OpenOffice (AOO) Bugzilla – Issue 4386
OpenOffice always crashes during import of this MS Word document
Last modified: 2003-09-08 16:56:16 UTC
OpenOffice crashes during import of this MS Word document. Tested with build 641D & 1.0.0 on Windows 2000 professional and 2002/04/32 deb package on Linux (Debian 3.0).
sorry the deb package date is 2002/04/23
Created attachment 1522 [details] Document, created with MS Word, OpenOffice will crash on opening
MRU->CMC: I could reproduce it with an actual 642. But I don't know if it's crashing in the filter or somewhere else (debugger on our volumes aren't running at the moment). Could you have a look? Perhaps we should set the Target for 642... Thank you!
Created attachment 1662 [details] 1st wmf
cmc->sj: I suspect that there is something not right with wmf importing... i.e. Insert the attached wmf. In the SRX642z I first get a alloc.c dynamic memory corruption with a stacktrace of... NTDLL! DbgBreakPoint address 0x77fa018c SAL3! rtl_reallocateMemory + 1676 bytes SAL3! rtl_reallocateMemory + 3344 bytes SAL3! rtl_allocateMemory + 97 bytes TL642MI! operator new(unsigned int) + 58 bytes DL642MI! SdrMarkView::SetMarkHandles(void) + 1307 bytes DL642MI! SdrMarkView::AdjustMarkHdl(unsigned char) + 97 bytes DL642MI! SdrMarkView::ModelHasChanged(void) + 320 bytes DL642MI! SdrEditView::ModelHasChanged(void) + 15 bytes DL642MI! SdrObjEditView::ModelHasChanged(void) + 26 bytes DL642MI! SdrPaintView::LinkStubImpComeBackHdl(void *,void *) + 56 bytes VCL642MI! Timer::Timeout(void) + 43 bytes VCL642MI! ImplTimerCallbackProc(void) + 209 bytes VCL642MI! SalTimerProc(struct HWND__ *,unsigned int,unsigned int,unsigned long) + 48 bytes USER32! ScrollDC + 1168 bytes USER32! ScrollDC + 1872 bytes USER32! DispatchMessageW + 11 bytes USER32! EndDialog + 437 bytes USER32! SoftModalMessageBox + 1399 bytes USER32! CreateDialogParamW + 1061 bytes USER32! MessageBoxExW + 82 bytes USER32! MessageBoxExA + 111 bytes USER32! MessageBoxA + 36 bytes SAL3! osl_assertFailedLine + 246 bytes SAL3! rtl_reallocateMemory + 1659 bytes SAL3! rtl_reallocateMemory + 3344 bytes SAL3! rtl_allocateMemory + 97 bytes TL642MI! ByteString::ByteString(class ByteString const &,unsigned short,unsigned short) + 399 bytes TL642MI! ByteString::Append(char) + 128 bytes SFX642MI! SfxDispatcher::Update_Impl(unsigned char) + 954 bytes SFX642MI! DispatcherUpdate_Impl(void *,void *) + 13 bytes SVT642MI! svtools::AsynchronLink::Call_Impl(void *) + 54 bytes SVT642MI! svtools::AsynchronLink::HandleCall(class svtools::AsynchronLink *,void *) + 95 bytes VCL642MI! ImplWindowFrameProc(void *,class SalFrame *,unsigned short,void const *) + 6281 bytes VCL642MI! ImplWindowFrameProc(void *,class SalFrame *,unsigned short,void const *) + 1243 bytes VCL642MI! SalFrameWndProc(struct HWND__ *,unsigned int,unsigned int,long,int &) + 7748 bytes VCL642MI! SalFrameWndProc(struct HWND__ *,unsigned int,unsigned int,long,int &) + 1222 bytes VCL642MI! SalFrameWndProcW(struct HWND__ *,unsigned int,unsigned int,long) + 38 bytes USER32! ScrollDC + 1168 bytes USER32! ScrollDC + 1752 bytes USER32! DispatchMessageW + 11 bytes USER32! EndDialog + 437 bytes USER32! SoftModalMessageBox + 1399 bytes USER32! CreateDialogParamW + 1061 bytes USER32! MessageBoxExW + 82 bytes USER32! MessageBoxExA + 111 bytes USER32! MessageBoxA + 36 bytes SAL3! osl_assertFailedLine + 246 bytes SAL3! rtl_reallocateMemory + 1659 bytes SAL3! rtl_reallocateMemory + 3344 bytes SAL3! rtl_allocateMemory + 97 bytes SAL3! rtl_uString_newFromString + 172 bytes SAL3! rtl_uString_newFromAscii + 111 bytes CPPU3! rtl::OUString::createFromAscii(char const *) + 24 bytes CPPU3! typelib_static_type_init + 50 bytes DL642MI! com::sun::star::uno::Reference<class com::sun::star::container::XIndexAccess>::__query(class com::sun::star::uno::XInterface *) + 38 bytes DL642MI! FmXFormView::OnActivate(void *) + 301 bytes DL642MI! FmXFormView::LinkStubOnActivate(void *,void *) + 15 bytes VCL642MI! ImplWindowFrameProc(void *,class SalFrame *,unsigned short,void const *) + 6281 bytes VCL642MI! ImplWindowFrameProc(void *,class SalFrame *,unsigned short,void const *) + 1243 bytes VCL642MI! SalFrameWndProc(struct HWND__ *,unsigned int,unsigned int,long,int &) + 7748 bytes VCL642MI! SalFrameWndProc(struct HWND__ *,unsigned int,unsigned int,long,int &) + 1222 bytes VCL642MI! SalFrameWndProcW(struct HWND__ *,unsigned int,unsigned int,long) + 38 bytes USER32! ScrollDC + 1168 bytes USER32! ScrollDC + 1752 bytes USER32! DispatchMessageW + 11 bytes USER32! EndDialog + 437 bytes USER32! SoftModalMessageBox + 1399 bytes USER32! CreateDialogParamW + 1061 bytes USER32! MessageBoxExW + 82 bytes USER32! MessageBoxExA + 111 bytes USER32! MessageBoxA + 36 bytes SAL3! osl_assertFailedLine + 246 bytes SAL3! rtl_reallocateMemory + 1659 bytes SAL3! rtl_reallocateMemory + 3344 bytes SAL3! rtl_allocateMemory + 97 bytes TL642MI! operator new(unsigned int) + 58 bytes VCL642MI! Application::PostUserEvent(unsigned long &,class Link const &,void *) + 13 bytes VCL642MI! ImplWindowFrameProc(void *,class SalFrame *,unsigned short,void const *) + 5989 bytes VCL642MI! ImplWindowFrameProc(void *,class SalFrame *,unsigned short,void const *) + 1095 bytes VCL642MI! SalFrameWndProc(struct HWND__ *,unsigned int,unsigned int,long,int &) + 7183 bytes VCL642MI! SalFrameWndProc(struct HWND__ *,unsigned int,unsigned int,long,int &) + 1026 bytes VCL642MI! SalFrameWndProcW(struct HWND__ *,unsigned int,unsigned int,long) + 38 bytes USER32! ScrollDC + 1168 bytes USER32! GetQueueStatus + 372 bytes USER32! GetQueueStatus + 304 bytes NTDLL! KiUserCallbackDispatcher + 19 bytes USER32! SoftModalMessageBox + 1399 bytes USER32! CreateDialogParamW + 1061 bytes USER32! MessageBoxExW + 82 bytes USER32! MessageBoxExA + 111 bytes USER32! MessageBoxA + 36 bytes SAL3! osl_assertFailedLine + 246 bytes SAL3! rtl_reallocateMemory + 1659 bytes SAL3! rtl_reallocateMemory + 3344 bytes SAL3! rtl_allocateMemory + 97 bytes TL642MI! operator new(unsigned int) + 58 bytes MetaRasterOpAction::Clone() line 3073 + 7 bytes GDIMetaFile::Scale(double 1.0002054820020, double 1.0000000000000) line 839 + 23 bytes GO642MI! GraphicManager::ImplCreateOutput(class OutputDevice *,class Point const &,class Size const &,class GDIMetaFile const &,class GraphicAttr const &,unsigned long,class GDIMetaFile *) + 220 bytes GO642MI! GraphicManager::ImplDraw(class OutputDevice *,class Point const &,class Size const &,class GraphicObject &,class GraphicAttr const &,unsigned long,unsigned char &) + 434 bytes GO642MI! GraphicManager::DrawObj(class OutputDevice *,class Point const &,class Size const &,class GraphicObject &,class GraphicAttr const &,unsigned long,unsigned char &) + 1005 bytes GO642MI! GraphicObject::Draw(class OutputDevice *,class Point const &,class Size const &,class GraphicAttr const *,unsigned long) + 502 bytes SW642MI! SwNoTxtFrm::PaintPicture(class OutputDevice *,class SwRect const &,class SwRect const &) + 947 bytes VCL642MI! _stricmp + 538744 bytes eventually it crashes still inside GDIMetaFile::Scale I get a similiarly located crash when inserting the graphic into impress or through the ww8 filter. GDIMetaFile::Scale seems to be the common offender.
sj->cmc: If I load the document I am crashing having the below qouted stack. The crash you mentioned in GdiMetafile::scale is a new one which is not happening in OpenOffice 1.0. (There was a problem of our MetaTextArrayAction thas been fixed by me in vcl/source/gdi/metaact.cxx -r1.6) So this issue seems to be right in your hands. SW642MI! InsertCnt(class SwLayoutFrm *,class SwDoc *,unsigned long,unsigned char,unsigned long,class SwFrm *) + 1417 bytes SW642MI! SwCellFrm::SwCellFrm(class SwTableBox const &) + 87 bytes SW642MI! SwTabFrm::SwTabFrm(class SwTable &) + 128 bytes SW642MI! SwTableNode::MakeFrm(void) + 28 bytes SW642MI! InsertCnt(class SwLayoutFrm *,class SwDoc *,unsigned long,unsigned char,unsigned long,class SwFrm *) + 825 bytes SW642MI! SwRootFrm::SwRootFrm(class SwFrmFmt *,class ViewShell *) + 549 bytes SW642MI! ViewShell::Init(class SwViewOption const *) + 714 bytes SW642MI! SwCrsrShell::SwCrsrShell(class SwDoc &,class Window *,class SwRootFrm *,class SwViewOption const *) + 41 bytes SW642MI! SwEditShell::SwEditShell(class SwDoc &,class Window *,class SwRootFrm *,class SwViewOption const *) + 30 bytes SW642MI! SwFEShell::SwFEShell(class SwDoc &,class Window *,class SwRootFrm *,class SwViewOption const *) + 30 bytes SW642MI! SwWrtShell::SwWrtShell(class SwDoc &,class Window *,class SwView &,class SwRootFrm *,class SwViewOption const *) + 34 bytes SW642MI! SwView::SwView(class SfxViewFrame *,class SfxViewShell *) + 1566 bytes SW642MI! SwView::CreateInstance(class SfxViewFrame *,class SfxViewShell *) + 34 bytes SFX642MI! SfxViewFactory::CreateInstance(class SfxViewFrame *,class SfxViewShell *) + 103 bytes
Created attachment 1674 [details] small example
After applying vcl patch I see it, its something to do with footnotes inside a table would you believe...
I see why this is happening, there is an endnote referenced inside a table, and endnotes are set to collect after the section. To make this make sense for writer we insert a section from the beginning of the page to after the insertion point. But we're in a table and you can't just end a section inside a table. cmc->mru: Feel free to raise this as an internal 642
Working in SRC569a
I see work/issues have already started. Changing status.
Will work with next OpenOffice 643 release.
Fixed in OpenOffice 643C