Issue 4386 - OpenOffice always crashes during import of this MS Word document
Summary: OpenOffice always crashes during import of this MS Word document
Status: CLOSED FIXED
Alias: None
Product: Writer
Classification: Application
Component: code (show other issues)
Version: OOo 1.0.0
Hardware: PC All
: P1 (highest) Trivial with 1 vote (vote)
Target Milestone: ---
Assignee: michael.ruess
QA Contact: issues@sw
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2002-05-02 19:33 UTC by Unknown
Modified: 2003-09-08 16:56 UTC (History)
1 user (show)

See Also:
Issue Type: DEFECT
Latest Confirmation in: ---
Developer Difficulty: ---


Attachments
Document, created with MS Word, OpenOffice will crash on opening (378.50 KB, application/octet-stream)
2002-05-02 19:57 UTC, Unknown
no flags Details
1st wmf (17.01 KB, patch)
2002-05-15 16:43 UTC, caolanm
no flags Details | Diff
small example (36.00 KB, application/octet-stream)
2002-05-16 15:14 UTC, caolanm
no flags Details

Note You need to log in before you can comment on or make changes to this issue.
Description Unknown 2002-05-02 19:33:01 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).
Comment 1 Unknown 2002-05-02 19:56:15 UTC
sorry the deb package date is 2002/04/23
Comment 2 Unknown 2002-05-02 19:57:42 UTC
Created attachment 1522 [details]
Document, created with MS Word, OpenOffice will crash on opening
Comment 3 michael.ruess 2002-05-15 15:32:59 UTC
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!
Comment 4 caolanm 2002-05-15 16:43:27 UTC
Created attachment 1662 [details]
1st wmf
Comment 5 caolanm 2002-05-15 17:20:28 UTC
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.
Comment 6 sven.jacobi 2002-05-16 10:58:03 UTC
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


Comment 7 caolanm 2002-05-16 15:14:03 UTC
Created attachment 1674 [details]
small example
Comment 8 caolanm 2002-05-16 15:14:57 UTC
After applying vcl patch I see it, its something to do with footnotes
inside a table would you believe...
Comment 9 caolanm 2002-05-16 17:24:44 UTC
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
Comment 10 caolanm 2002-06-13 15:34:22 UTC
Working in SRC569a
Comment 11 nedrichards 2002-06-27 11:09:49 UTC
I see work/issues have already started. Changing status.
Comment 12 michael.ruess 2002-09-05 15:12:54 UTC
Will work with next OpenOffice 643 release.
Comment 13 michael.ruess 2002-11-29 10:35:39 UTC
Fixed in OpenOffice 643C