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)

Sun
Solaris
defect

Tracking

(Not tracked)

VERIFIED FIXED

People

(Reporter: roland.mainz, Assigned: mozilla)

References

()

Details

(Keywords: crash, platform-parity, Whiteboard: [branch accept])

Attachments

(4 files)

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 ?
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 ?
Blocks: 30751
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
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.
Blocks: 57885
Keywords: pp
Patch(s) look good to me. r=bnesse.
No longer blocks: 57885
Blocks: 57885
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
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
Approve a=av
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
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
On Linux (I tried it on Redhat 6.1), printf will not crash when printing a null pointer, instead, it prints: "...(null)...".
Build 2001-01-26-08-Mtrunk works on Solaris SPARC, too... :-)
Product: Core → Core Graveyard
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: