Closed
Bug 62489
Opened 25 years ago
Closed 24 years ago
Moz. 2000-12-06-08-Mtrunk crashes in nsPluginHostImpl::GetPluginFactory()
Categories
(Core Graveyard :: Plug-ins, defect, P1)
Tracking
(Not tracked)
VERIFIED
FIXED
People
(Reporter: roland.mainz, Assigned: mozilla)
References
()
Details
(Keywords: crash, platform-parity, Whiteboard: [branch accept])
Attachments
(4 files)
686 bytes,
patch
|
Details | Diff | Splinter Review | |
647 bytes,
patch
|
Details | Diff | Splinter Review | |
888 bytes,
patch
|
Details | Diff | Splinter Review | |
961 bytes,
patch
|
Details | Diff | Splinter Review |
Mozilla build from 2000-12-06-08-Mtrunk crashes like this when looking for a
plugin:
-- snip --
WARNING: not calling OnDataAvailable, file
../../../../netwerk/base/src/nsAsyncStreamListener.cpp, line 410
nsWidget::~nsWidget() of toplevel: 78 widgets still exist.
WEBSHELL- = 21
Enabling Quirk StyleSheet
JavaScript error:
http://www.kino.de/fun/clips.asp line 22:
JavaScript error:
line 0: uncaught exception: null
WARNING: not calling OnDataAvailable, file
../../../../netwerk/base/src/nsAsyncStreamListener.cpp, line 410
Enabling Quirk StyleSheet
JavaScript error:
http://www.kino.de/filme/real.asp?1000364,0,clips line 22:
JavaScript error:
line 0: uncaught exception: null
WARNING: not calling OnDataAvailable, file
../../../../netwerk/base/src/nsAsyncStreamListener.cpp, line 410
InstantiateEmbededPlugin for audio/x-pn-realaudio-plugin
Inside nsPluginHostImpl::FindStoppedPluginForURL...
Segmentation Fault - core dumped
-- snip --
GDB stack trace from coredump looks like this:
-- snip --
% gdb -core core mozilla-bin
This GDB was configured as "sparc-sun-solaris2.7"...
Core was generated by `./mozilla-bin'.
Program terminated with signal 9, Killed.
(gdb) where
#0 0xfec36dec in strlen () from /usr/lib/libc.so.1
#1 0xfec7fe18 in _doprnt () from /usr/lib/libc.so.1
#2 0xfec819d0 in printf () from /usr/lib/libc.so.1
#3 0xfb9f0058 in nsPluginHostImpl::GetPluginFactory (this=0x0,
aMimeType=0xfba15b00 "*", aPlugin=0xffbe71d0)
at ../../../../modules/plugin/nglsrc/nsPluginHostImpl.cpp:2862
#4 0xfb9ef21c in nsPluginHostImpl::SetUpDefaultPluginInstance (this=0x1b7d58,
aMimeType=0x1515bf8 "audio/x-pn-realaudio-plugin",
aURL=0x1aaca40, aOwner=0x1aac910) at
../../../../modules/plugin/nglsrc/nsPluginHostImpl.cpp:2502
#5 0xfb9ee184 in nsPluginHostImpl::InstantiateEmbededPlugin (this=0x1b7d58,
aMimeType=0x1515bf8 "audio/x-pn-realaudio-plugin",
aURL=0x1aaca40, aOwner=0x1aac910) at
../../../../modules/plugin/nglsrc/nsPluginHostImpl.cpp:2209
#6 0xfbf47288 in nsObjectFrame::InstantiatePlugin (this=0x13f9d74,
aPresContext=0xff2d2270, aMetrics=@0x196a618,
aReflowState=@0xffbe76d4, aPluginHost=0x1b7d5c, aMimetype=0x1515bf8
"audio/x-pn-realaudio-plugin", aURL=0x1aaca40)
at ../../../../../layout/html/base/src/nsObjectFrame.cpp:979
#7 0xfbf467d8 in nsObjectFrame::Reflow (this=0x13f9d74, aPresContext=0x1ad8038,
aMetrics=@0xffbe80b0, aReflowState=@0xffbe8170,
aStatus=@0xffbe82f4) at
../../../../../layout/html/base/src/nsObjectFrame.cpp:855
#8 0xfbf3fbec in nsLineLayout::ReflowFrame (this=0xffbe84b8, aFrame=0x13f9d74,
aNextRCFrame=0x1, aReflowStatus=@0xffbe82f4,
aMetrics=0x0, aPushedFrame=@0xffbe82f0) at
../../../../../layout/html/base/src/nsLineLayout.cpp:919
#9 0xfbf024f8 in nsBlockFrame::ReflowInlineFrame (this=0x13f9d28,
aState=@0xffbe8eb8, aLineLayout=@0xffbe84b8, aLine=0x13f9dbc,
aFrame=0x13f9d74, aLineReflowStatus=0xffbe8437 "") at
../../../../../layout/html/base/src/nsBlockFrame.cpp:4362
#10 0xfbf02218 in nsBlockFrame::DoReflowInlineFrames (this=0x13f9d28,
aState=@0xffbe8eb8, aLineLayout=@0xffbe84b8,
aLine=0x13f9dbc, aKeepReflowGoing=0xffbe8b80, aLineReflowStatus=0xffbe89b7
"\002ü\223à\220", aUpdateMaximumWidth=0,
aDamageDirtyArea=0) at
../../../../../layout/html/base/src/nsBlockFrame.cpp:4247
#11 0xfbf01f40 in nsBlockFrame::DoReflowInlineFramesAuto (this=0x13f9d28,
aState=@0xffbe8eb8, aLine=0x13f9dbc,
aKeepReflowGoing=0xffbe8b80, aLineReflowStatus=0xffbe89b7 "\002ü\223à\220",
aUpdateMaximumWidth=0, aDamageDirtyArea=0)
at ../../../../../layout/html/base/src/nsBlockFrame.cpp:4179
#12 0xfbf01dc0 in nsBlockFrame::ReflowInlineFrames (this=0x13f9d28,
aState=@0xffbe8eb8, aLine=0x13f9dbc,
aKeepReflowGoing=0xffbe8b80, aDamageDirtyArea=0, aUpdateMaximumWidth=0)
at ../../../../../layout/html/base/src/nsBlockFrame.cpp:4126
#13 0xfbf00310 in nsBlockFrame::ReflowLine (this=0x13f9d28, aState=@0xffbe8eb8,
aLine=0x13f9dbc, aKeepReflowGoing=0xffbe8b80,
aDamageDirtyArea=0) at
../../../../../layout/html/base/src/nsBlockFrame.cpp:3260
#14 0xfbeff794 in nsBlockFrame::ReflowDirtyLines (this=0x13f9d28,
aState=@0xffbe8eb8)
at ../../../../../layout/html/base/src/nsBlockFrame.cpp:2949
#15 0xfbefcfbc in nsBlockFrame::Reflow (this=0x13f9d28, aPresContext=0x1ad8038,
aMetrics=@0xffbe9498, aReflowState=@0xffbe93d8,
aStatus=@0xffbeb040) at
../../../../../layout/html/base/src/nsBlockFrame.cpp:1740
#16 0xfbf0e004 in nsContainerFrame::ReflowChild (this=0x13f9cc8,
aKidFrame=0x13f9d28, aPresContext=0x1ad8038,
aDesiredSize=@0xffbe9498, aReflowState=@0xffbe93d8, aX=0, aY=0, aFlags=0,
aStatus=@0xffbeb040)
at ../../../../../layout/html/base/src/nsContainerFrame.cpp:693
#17 0xfc13ea8c in nsTableCellFrame::Reflow (this=0x13f9cc8,
aPresContext=0x1ad8038, aDesiredSize=@0xffbe98a8,
aReflowState=@0xffbe97e8, aStatus=@0xffbeb040) at
../../../../../layout/html/table/src/nsTableCellFrame.cpp:807
#18 0xfbf0e004 in nsContainerFrame::ReflowChild (this=0x13f9980,
aKidFrame=0x13f9cc8, aPresContext=0x1ad8038,
aDesiredSize=@0xffbe98a8, aReflowState=@0xffbe97e8, aX=1650, aY=0, aFlags=0,
aStatus=@0xffbeb040)
at ../../../../../layout/html/base/src/nsContainerFrame.cpp:693
#19 0xfc15342c in nsTableRowFrame::InitialReflow (this=0x13f9980,
aPresContext=0x1ad8038, aDesiredSize=@0xffbe9e88,
aReflowState=@0xffbe9b68, aStatus=@0xffbeb040, aStartFrame=0xffbe97e8,
aDoSiblings=1)
at ../../../../../layout/html/table/src/nsTableRowFrame.cpp:1128
#20 0xfc154114 in nsTableRowFrame::Reflow (this=0x13f9980,
aPresContext=0x1ad8038, aDesiredSize=@0xffbe9e88,
aReflowState=@0xffbe9dc8, aStatus=@0xffbeb040) at
../../../../../layout/html/table/src/nsTableRowFrame.cpp:1532
#21 0xfbf0e004 in nsContainerFrame::ReflowChild (this=0x13f993c,
aKidFrame=0x13f9980, aPresContext=0x1ad8038,
aDesiredSize=@0xffbe9e88, aReflowState=@0xffbe9dc8, aX=0, aY=0, aFlags=0,
aStatus=@0xffbeb040)
at ../../../../../layout/html/base/src/nsContainerFrame.cpp:693
#22 0xfc1553d4 in nsTableRowGroupFrame::ReflowMappedChildren (this=0x13f993c,
aPresContext=0x1ad8038, aDesiredSize=@0xffbea4c0,
aReflowState=@0xffbea0f0, aStatus=@0xffbeb040, aStartFrame=0x0,
aReason=eReflowReason_Initial, aDoSiblings=1, aDirtyOnly=0)
at ../../../../../layout/html/table/src/nsTableRowGroupFrame.cpp:422
#23 0xfc156f14 in nsTableRowGroupFrame::Reflow (this=0x13f993c,
aPresContext=0x1ad8038, aDesiredSize=@0xffbea4c0,
---Type <return> to continue, or q <return> to quit---
aReflowState=@0xffbea300, aStatus=@0xffbeb040) at
../../../../../layout/html/table/src/nsTableRowGroupFrame.cpp:1091
#24 0xfbf0e004 in nsContainerFrame::ReflowChild (this=0x13f98d4,
aKidFrame=0x13f993c, aPresContext=0x1ad8038,
aDesiredSize=@0xffbea4c0, aReflowState=@0xffbea300, aX=0, aY=0, aFlags=0,
aStatus=@0xffbeb040)
at ../../../../../layout/html/base/src/nsContainerFrame.cpp:693
#25 0xfc14686c in nsTableFrame::ResizeReflowPass1 (this=0x13f98d4,
aPresContext=0x1ad8038, aDesiredSize=@0xffbeab00,
aReflowState=@0xffbea938, aStatus=@0xffbeb040,
aReason=eReflowReason_Initial, aDoSiblingFrames=1)
at ../../../../../layout/html/table/src/nsTableFrame.cpp:1878
#26 0xfc146158 in nsTableFrame::Reflow (this=0x13f98d4, aPresContext=0x1ad8038,
aDesiredSize=@0xffbeab00,
aReflowState=@0xffbea938, aStatus=@0xffbeb040) at
../../../../../layout/html/table/src/nsTableFrame.cpp:1675
#27 0xfbf0e004 in nsContainerFrame::ReflowChild (this=0x13f9880,
aKidFrame=0x13f98d4, aPresContext=0x1ad8038,
aDesiredSize=@0xffbeab00, aReflowState=@0xffbea938, aX=0, aY=0, aFlags=3,
aStatus=@0xffbeb040)
at ../../../../../layout/html/base/src/nsContainerFrame.cpp:693
#28 0xfc14f13c in nsTableOuterFrame::OuterReflowChild (this=0x13f9880,
aPresContext=0x1ad8038, aChildFrame=0x13f98d4,
aOuterRS=@0xffbeaeb0, aMetrics=@0xffbeab00, aAvailWidth=0xffbea938,
aDesiredSize=@0xffbeaac8, aMargin=@0xffbeaad0,
aMarginNoAuto=@0xffbeaae0, aPadding=@0xffbeaaf0,
aReflowReason=eReflowReason_Initial, aStatus=@0xffbeb040)
at ../../../../../layout/html/table/src/nsTableOuterFrame.cpp:899
#29 0xfc150880 in nsTableOuterFrame::Reflow (this=0x13f9880,
aPresContext=0x1ad8038, aDesiredSize=@0xffbeb198,
aOuterRS=@0xffbeaeb0, aStatus=@0xffbeb040) at
../../../../../layout/html/table/src/nsTableOuterFrame.cpp:1440
#30 0xfbf0a2d4 in nsBlockReflowContext::DoReflowBlock (this=0xffbeb158,
aReflowState=@0xffbeaeb0, aReason=eReflowReason_Initial,
aFrame=0x13f9880, aSpace=@0x0, aApplyTopMargin=1, aPrevBottomMargin=0,
aIsAdjacentWithTop=0, aComputedOffsets=@0xffbeb068,
aFrameReflowStatus=@0xffbeb040) at
../../../../../layout/html/base/src/nsBlockReflowContext.cpp:561
#31 0xfbf09c3c in nsBlockReflowContext::ReflowBlock (this=0xffbeb158,
aFrame=0x13f9880, aSpace=@0xffbeb058, aApplyTopMargin=1,
aPrevBottomMargin=0, aIsAdjacentWithTop=0, aComputedOffsets=@0xffbeb068,
aFrameReflowStatus=@0xffbeb040)
at ../../../../../layout/html/base/src/nsBlockReflowContext.cpp:331
#32 0xfbf017c4 in nsBlockFrame::ReflowBlockFrame (this=0x1423940,
aState=@0xffbeb718, aLine=0x1482eac, aKeepReflowGoing=0xffbeb3e0)
at ../../../../../layout/html/base/src/nsBlockFrame.cpp:3879
#33 0xfbeffef0 in nsBlockFrame::ReflowLine (this=0x1423940, aState=@0xffbeb718,
aLine=0x1482eac, aKeepReflowGoing=0xffbeb3e0,
aDamageDirtyArea=1) at
../../../../../layout/html/base/src/nsBlockFrame.cpp:3142
#34 0xfbeff794 in nsBlockFrame::ReflowDirtyLines (this=0x1423940,
aState=@0xffbeb718)
at ../../../../../layout/html/base/src/nsBlockFrame.cpp:2949
#35 0xfbefcfbc in nsBlockFrame::Reflow (this=0x1423940, aPresContext=0x1ad8038,
aMetrics=@0xffbebee8, aReflowState=@0xffbebc00,
aStatus=@0xffbebd90) at
../../../../../layout/html/base/src/nsBlockFrame.cpp:1740
#36 0xfbf0a2d4 in nsBlockReflowContext::DoReflowBlock (this=0xffbebea8,
aReflowState=@0xffbebc00,
aReason=eReflowReason_Incremental, aFrame=0x1423940, aSpace=@0x96,
aApplyTopMargin=1, aPrevBottomMargin=0,
aIsAdjacentWithTop=1, aComputedOffsets=@0xffbebdb8,
aFrameReflowStatus=@0xffbebd90)
at ../../../../../layout/html/base/src/nsBlockReflowContext.cpp:561
#37 0xfbf09c3c in nsBlockReflowContext::ReflowBlock (this=0xffbebea8,
aFrame=0x1423940, aSpace=@0xffbebda8, aApplyTopMargin=1,
aPrevBottomMargin=0, aIsAdjacentWithTop=1, aComputedOffsets=@0xffbebdb8,
aFrameReflowStatus=@0xffbebd90)
at ../../../../../layout/html/base/src/nsBlockReflowContext.cpp:331
#38 0xfbf017c4 in nsBlockFrame::ReflowBlockFrame (this=0x14238b8,
aState=@0xffbec468, aLine=0x14239b4, aKeepReflowGoing=0xffbec130)
at ../../../../../layout/html/base/src/nsBlockFrame.cpp:3879
#39 0xfbeffef0 in nsBlockFrame::ReflowLine (this=0x14238b8, aState=@0xffbec468,
aLine=0x14239b4, aKeepReflowGoing=0xffbec130,
aDamageDirtyArea=1) at
../../../../../layout/html/base/src/nsBlockFrame.cpp:3142
#40 0xfbeff794 in nsBlockFrame::ReflowDirtyLines (this=0x14238b8,
aState=@0xffbec468)
at ../../../../../layout/html/base/src/nsBlockFrame.cpp:2949
#41 0xfbefcfbc in nsBlockFrame::Reflow (this=0x14238b8, aPresContext=0x1ad8038,
aMetrics=@0xffbec9f8, aReflowState=@0xffbec938,
aStatus=@0xffbeccd0) at
../../../../../layout/html/base/src/nsBlockFrame.cpp:1740
#42 0xfbf0e004 in nsContainerFrame::ReflowChild (this=0x1422a34,
aKidFrame=0x14238b8, aPresContext=0x1ad8038,
aDesiredSize=@0xffbec9f8, aReflowState=@0xffbec938, aX=0, aY=0, aFlags=0,
aStatus=@0xffbeccd0)
at ../../../../../layout/html/base/src/nsContainerFrame.cpp:693
#43 0xfbf2b33c in CanvasFrame::Reflow (this=0x1422a34, aPresContext=0x1ad8038,
aDesiredSize=@0xffbecd18, aReflowState=@0xffbecb98,
aStatus=@0xffbeccd0) at
../../../../../layout/html/base/src/nsHTMLFrame.cpp:301
#44 0xfc19d694 in nsBoxToBlockAdaptor::Reflow (this=0x142384c,
aState=@0xffbed770, aPresContext=0x1ad8038,
---Type <return> to continue, or q <return> to quit---
aDesiredSize=@0xffbecd18, aReflowState=@0xffbedaf8, aStatus=@0xffbeccd0,
aX=0, aY=0, aWidth=8370, aHeight=8670, aMoveFrame=1)
at ../../../../../layout/xul/base/src/nsBoxToBlockAdaptor.cpp:866
#45 0xfc19cfa4 in nsBoxToBlockAdaptor::DoLayout (this=0x142384c,
aState=@0xffbed770)
at ../../../../../layout/xul/base/src/nsBoxToBlockAdaptor.cpp:525
#46 0xfc199d0c in nsBox::Layout (this=0x142384c, aState=@0xffbed770) at
../../../../../layout/xul/base/src/nsBox.cpp:1000
#47 0xfc17b108 in nsScrollBoxFrame::DoLayout (this=0x1422b14,
aState=@0xffbed770)
at ../../../../../layout/xul/base/src/nsScrollBoxFrame.cpp:377
#48 0xfc199d0c in nsBox::Layout (this=0x1422b4c, aState=@0xffbed770) at
../../../../../layout/xul/base/src/nsBox.cpp:1000
#49 0xfc19f82c in nsContainerBox::LayoutChildAt (aState=@0xffbed770,
aBox=0x1422b4c, aRect=@0xffbed3d0)
at ../../../../../layout/xul/base/src/nsContainerBox.cpp:593
#50 0xfbf7becc in nsGfxScrollFrameInner::LayoutBox (this=0x18e4608,
aState=@0xffbed770, aBox=0x1422b4c, aRect=@0xffbed3d0)
at ../../../../../layout/html/base/src/nsGfxScrollFrame.cpp:1029
#51 0xfbf7c09c in nsGfxScrollFrameInner::Layout (this=0x18e4608,
aState=@0xffbed770)
at ../../../../../layout/html/base/src/nsGfxScrollFrame.cpp:1109
#52 0xfbf7bf00 in nsGfxScrollFrame::DoLayout (this=0x1422a6c,
aState=@0xffbed770)
at ../../../../../layout/html/base/src/nsGfxScrollFrame.cpp:1037
#53 0xfc199d0c in nsBox::Layout (this=0x1422aa4, aState=@0xffbed770) at
../../../../../layout/xul/base/src/nsBox.cpp:1000
#54 0xfc1ae644 in nsBoxFrame::Reflow (this=0x1422a6c, aPresContext=0x1ad8038,
aDesiredSize=@0xffbedbf8, aReflowState=@0xffbedaf8,
aStatus=@0xffbedd2c) at
../../../../../layout/xul/base/src/nsBoxFrame.cpp:786
#55 0xfbf7b1a4 in nsGfxScrollFrame::Reflow (this=0x1422a6c,
aPresContext=0x1ad8038, aDesiredSize=@0xffbedbf8,
aReflowState=@0xffbedaf8, aStatus=@0xffbedd2c) at
../../../../../layout/html/base/src/nsGfxScrollFrame.cpp:741
#56 0xfbf0e004 in nsContainerFrame::ReflowChild (this=0x14229f8,
aKidFrame=0x1422a6c, aPresContext=0x1ad8038,
aDesiredSize=@0xffbedbf8, aReflowState=@0xffbedaf8, aX=0, aY=0, aFlags=0,
aStatus=@0xffbedd2c)
at ../../../../../layout/html/base/src/nsContainerFrame.cpp:693
#57 0xfbf78f5c in ViewportFrame::Reflow (this=0x14229f8, aPresContext=0x1ad8038,
aDesiredSize=@0xffbedf78,
aReflowState=@0xffbedd38, aStatus=@0xffbedd2c) at
../../../../../layout/html/base/src/nsViewportFrame.cpp:545
#58 0xfbf2ce90 in nsHTMLReflowCommand::Dispatch (this=0x13b4980,
aPresContext=0x1ad8038, aDesiredSize=@0xffbedf78,
aMaxSize=@0xffbedf38, aRendContext=@0x191b6a8) at
../../../../../layout/html/base/src/nsHTMLReflowCommand.cpp:145
#59 0xfbf5e100 in PresShell::ProcessReflowCommands (this=0x1394540,
aInterruptible=1)
at ../../../../../layout/html/base/src/nsPresShell.cpp:5105
#60 0xfbf5d900 in HandlePLEvent (aEvent=0x1394540) at
../../../../../layout/html/base/src/nsPresShell.cpp:4986
#61 0xff1bc03c in PL_HandleEvent (self=0x13b49b8) at
../../../xpcom/threads/plevent.c:576
#62 0xff1bbebc in PL_ProcessPendingEvents (self=0xf56b0) at
../../../xpcom/threads/plevent.c:509
#63 0xff1bdeb4 in nsEventQueueImpl::ProcessPendingEvents (this=0x737d0) at
../../../xpcom/threads/nsEventQueue.cpp:356
#64 0xfdc2dd58 in event_processor_callback (data=0x737d0, source=5,
condition=GDK_INPUT_READ)
at ../../../../widget/src/gtk/nsAppShell.cpp:158
#65 0xfdc2d91c in our_gdk_io_invoke (source=0x737d0, condition=G_IO_IN,
data=0x20e508)
at ../../../../widget/src/gtk/nsAppShell.cpp:58
#66 0xfd6b2dd0 in g_io_unix_dispatch () from /usr/local/lib/libglib-1.2.so.0
#67 0xfd6b6dd0 in g_main_dispatch () from /usr/local/lib/libglib-1.2.so.0
#68 0xfd6b7bd4 in g_main_iterate () from /usr/local/lib/libglib-1.2.so.0
#69 0xfd6b7f6c in g_main_run () from /usr/local/lib/libglib-1.2.so.0
#70 0xfd9d60a8 in gtk_main () from /usr/local/lib/libgtk-1.2.so.0
#71 0xfdc2ea18 in nsAppShell::Run (this=0x97be8) at
../../../../widget/src/gtk/nsAppShell.cpp:350
#72 0xfe92d378 in nsAppShellService::Run (this=0x95ce8) at
../../../../xpfe/appshell/src/nsAppShellService.cpp:407
#73 0x1b450 in main1 (argc=1, argv=0xffbeea34, nativeApp=0x0) at
../../../xpfe/bootstrap/nsAppRunner.cpp:1016
#74 0x1bea8 in main (argc=1, argv=0xffbeea34) at
../../../xpfe/bootstrap/nsAppRunner.cpp:1260
-- snip --
Q: Is there a general way to avoid these *printf()-related NULLptr-dereference
crashes ?
Reporter | ||
Comment 1•24 years ago
|
||
Fix for nsPluginHostImpl.cpp looks like this:
-- snip --
LoadPlugins();
nsPluginTag* pluginTag;
if((rv = FindPluginEnabledForType(aMimeType, pluginTag)) == NS_OK)
{
#define NS_STRNULL(ptr) (((ptr)!=NULL)?(ptr):("<NULLptr>"))
#ifdef NS_DEBUG
printf("For %s found plugin %s\n", NS_STRNULL(aMimeType),
NS_STRNULL(pluginTag->mFileName));
#endif
-- snip --
One possible solution to get _rid_ of these debug crashes in printf() is to
"wrap" all arguments to '%s' with the NS_STRNULL(ptr) macro.
(Better solution would a wrapper to printf/fprintf&co....)
Comments ?
Comment 2•24 years ago
|
||
This bug was also noted and posted to bug 57885 (which is were the original
change originated from) on 2001-01-17 18:31. The details of the investigation may
be found there.
To summarize... The mFileName field is not being filled in on the Unix platform
in the function nsPluginFile::GetPluginInfo() in nsPluginsDirUnix.cpp. This is
also the reason that the plugin filename information does not appear properly if
you enter "about:plugins" in the url bar on a Unix build.
Assignee: av → jgaunt
Assignee | ||
Comment 3•24 years ago
|
||
Assignee | ||
Comment 4•24 years ago
|
||
Assignee | ||
Comment 5•24 years ago
|
||
The previous two patches set the fFileName field in the PluginInfo object in
nsPluginsDirUnix.cpp. This will cure the symptom described in the bug, namely
the crash in the printf statement by populating a field that on all other
platforms is populated at this point.
Comment 6•24 years ago
|
||
Patch(s) look good to me. r=bnesse.
Assignee | ||
Comment 7•24 years ago
|
||
copied from bug 57885:
Just because we have not run into ( or noticed ) major trouble with mFileName
being null to this point, doesn't mean it's right to not populate the field.
Developers should expect that the PluginInfo is fully populated no matter what
platform you are on. On all other platforms we populate this field. But I
digress since this bug is about a mac fix, not about Unix plugin FileName
problems, please post to bug 64289
57885 DOES depend on this bug. We need to fix this crasher one way or the other.
The prefered method, IMHO, would be to enforce platform parity and fully
populate the PluginInfo object when we load a plugin. True, we could just test
for null in the printf, but that would fix the symptom and not the cause.
No longer blocks: 57885
Comment 8•24 years ago
|
||
Adding branch accept to status whiteboard.
.Angela...
Whiteboard: [branch accept]
sr=buster.
please just verify that the string you allocate is eventually free'd
Keywords: crash
Priority: P3 → P1
Comment 10•24 years ago
|
||
Approve a=av
Assignee | ||
Comment 11•24 years ago
|
||
Assignee | ||
Comment 12•24 years ago
|
||
Assignee | ||
Comment 13•24 years ago
|
||
Checked into both Netscape_20000922_BRANCH and the tip.
buster: good catch on the free-ing.
Status: NEW → RESOLVED
Closed: 24 years ago
Resolution: --- → FIXED
Comment 14•24 years ago
|
||
verified on linux branch(0122) and trunk (0123) that this does not crash anymore
while looking for the plugin. Roland, can you pls verify on Solaris ?Thanks!
Status: RESOLVED → VERIFIED
Comment 15•24 years ago
|
||
On Linux (I tried it on Redhat 6.1), printf will not crash when printing a null
pointer, instead, it prints: "...(null)...".
Reporter | ||
Comment 16•24 years ago
|
||
Build 2001-01-26-08-Mtrunk works on Solaris SPARC, too... :-)
Updated•3 years ago
|
Product: Core → Core Graveyard
You need to log in
before you can comment on or make changes to this bug.
Description
•