Closed Bug 7208 Opened 25 years ago Closed 25 years ago

[CRASH] This Latin 3 test page causes a crash

Categories

(Core :: Internationalization, defect, P3)

x86
Windows NT
defect

Tracking

()

VERIFIED DUPLICATE of bug 7330

People

(Reporter: momoi, Assigned: nisheeth_mozilla)

References

()

Details

** Observed with 5/26/99 Win 32 M6 candidate build **

According to: "Bertil Wennergren" <bertilow@hem1.passagen.se>,
this page has 3-way declaration of the page charset. To quote Bertil,

------------------------------------------------------------------------
My page does have a HTTP Meta-Equiv charset attribute of ISO-8859-3. It's
in XHTML style though...

Actually, if you look at my test page using the URL
http://www.concinnity.se/bertilow/cgi-bin/m.cgi?d=html/signokodoj/latino3.htm
Latin 3 will be announced three times! First in the true http header, then
in the XML operation instruction (encoding="iso-8859-3"), then in the
META charset. What I tell you three times is true, as the Bellman would
say...
------------------------------------------------------------------------

When ftang's HTTP chatset handling was removed, this page caused
no problem. And you could view this page by switching the charset
menu to Latin 3/Esperanto -- it displays every character correctly.

However, now that the HHTP charset handling code is back in, this page
crashes the Browser while trying to load it. You can avoid the crash
by first switching to Latin 3 and then visit it.

Here's what I saw as an error message in the Command Prompt window:

---------------
runtime error R6025
- pure virtual function call
---------------

Looks like we may not be able to handle his declarations yet.
Here's the link to the TalkBack server: Incident ID: 9083360

http://cyclone/reports/incidenttemplate.CFM?reportID=1099&style=0&tc=48&cp=1&ck1
=SUser+email+address&cd1=momoi%40netscape%2Ecom&ck2=SBug+ID&cd2=isNotNull&bbid=9
083360
The original page at
<http://www.concinnity.se/bertilow/cgi-bin/m.cgi?d=html/signokodoj/latino3.htm>
is in XHTML.

I just added a pure HTML 4 version:
<http://www.concinnity.se/bertilow/cgi-bin/m.cgi?d=html/signokodoj/latino3b.htm>

Both pages can also be read directly (not through my CGI script). The http
headers will be different (no announcement of Latin 3):

<http://www.concinnity.se/bertilow/html/signokodoj/latino3.htm>
<http://www.concinnity.se/bertilow/html/signokodoj/latino3b.htm>

/Bertil Wennergren
Status: NEW → ASSIGNED
Need to verify with the latest tree after I put in the new
nsWebShell::ReloadDocument code. Add bertilow@hem1.passagen.se into the cc list.

bertilow, can you verify it against build after last May 28?
Target Milestone: M7
I tried my pages with M6 (Windows 98) build 1999052619. Lots of chrashes,
but once in a blue moon my Latin 3 test pages did show up correctly without
my having to turn on Latin 3 manually. So there is some progress. My Latin 2
page worked also (when it didn't crash...). However no page ever shows up
completely on the first go. I _always_ have to reload the page. The first
time the loading seems to stop when the actual table of signs is reached.
The entire table and everything after it is missing from the display. But
after a simple reload everything shows up (if it doesn't crash...).

In these pages the character set is announced in META tags etc.,
(not in the true http headers as I claimed before - sorry!),
but I also have pages in Latin 3, where Latin 3 is declared in the
http headers. This does not work. The http headers seem to be
completely ignored.

An example URL:

<http://www.concinnity.se/bertilow/cgi-bin/m.cgi?m=lat3a;d=index.htm>

The heading should show up as "C^e Bertilo" (with the ^ on top of
the C), not as "AEe Bertilo" (with an AE ligature).


Some other URLs to look at:


1. XHTML versions with double charset declarations in the code

e.g. <?xml version="1.0" encoding="ISO-8859-3"?>
  and
e.g. <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-3" />

<http://www.concinnity.se/bertilow/html/signokodoj/latin1.htm>
  (Latin 1 - ISO-8859-1)
<http://www.concinnity.se/bertilow/html/signokodoj/latin2.htm>
  (Latin 2 - ISO-8859-2)
<http://www.concinnity.se/bertilow/html/signokodoj/latin3.htm>
  (Latin 3 - ISO-8859-3)
<http://www.concinnity.se/bertilow/html/signokodoj/latino4.htm>
  (Latin 4 - ISO-8859-4)
<http://www.concinnity.se/bertilow/html/signokodoj/latino5.htm>
  (Latin 5 - ISO-8859-9)
<http://www.concinnity.se/bertilow/html/signokodoj/latino5.htm>
  (Cyrillic - ISO-8859-5)
<http://www.concinnity.se/bertilow/html/signokodoj/KOI8-R.htm>
  (Russian - KOI8-R)
<http://www.concinnity.se/bertilow/html/signokodoj/moderna_greka.htm>
  (Greek - ISO 8859-7)


2. HTML 4 versions with just one charset declaration in the code

e.g. <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-3">

<http://www.concinnity.se/bertilow/html/signokodoj/latin1b.htm>
  (Latin 1 - ISO-8859-1)
<http://www.concinnity.se/bertilow/html/signokodoj/latin2b.htm>
  (Latin 2 - ISO-8859-2)
<http://www.concinnity.se/bertilow/html/signokodoj/latin3b.htm>
  (Latin 3 - ISO-8859-3)
<http://www.concinnity.se/bertilow/html/signokodoj/latino4b.htm>
  (Latin 4 - ISO-8859-4)
<http://www.concinnity.se/bertilow/html/signokodoj/latino5b.htm>
  (Latin 5 - ISO-8859-9)
<http://www.concinnity.se/bertilow/html/signokodoj/latino5b.htm>
  (Cyrillic - ISO-8859-5)
<http://www.concinnity.se/bertilow/html/signokodoj/KOI8-Rb.htm>
  (Russian - KOI8-R)
<http://www.concinnity.se/bertilow/html/signokodoj/moderna_grekab.htm>
  (Greek - ISO 8859-7)

/Bertil Wennergren
Blocks: 7228
I try my 6/10 local build on Linux to url
http://www.concinnity.se/bertilow/cgi-bin/m.cgi?d=html/signokodoj/latino3.htm

and here is the stack trace. It think it probably have not thing deal w/ latin3.
I will do more test
#0  0x409aab00 in theme_image_unref ()
#1  0x406c48a0 in g_list_foreach ()
#2  0x409aab89 in theme_data_unref ()
#3  0x409ab326 in theme_destroy_style ()
#4  0x40625ab8 in gtk_style_destroy ()
#5  0x40625312 in gtk_style_unref ()
#6  0x40653e08 in gtk_widget_real_destroy ()
#7  0x405b7326 in gtk_container_destroy ()
#8  0x40658abb in gtk_marshal_NONE__NONE ()
#9  0x4061f568 in gtk_signal_real_emit ()
#10 0x4061d800 in gtk_signal_emit ()
#11 0x40604bea in gtk_object_shutdown ()
#12 0x40653daf in gtk_widget_shutdown ()
#13 0x40604b9b in gtk_object_destroy ()
#14 0x4064d467 in gtk_widget_destroy ()
#15 0x400f59de in nsWidget::Destroy (this=0x864a9d0) at nsWidget.cpp:165
#16 0x411a0dd8 in nsView::~nsView (this=0x864a968, __in_chrg=3) at
nsView.cpp:142
#17 0x411a118f in nsView::Destroy (this=0x864a968) at nsView.cpp:247
#18 0x40e17c98 in nsFrame::~nsFrame (this=0x86448e0, __in_chrg=0) at
nsFrame.cpp:187
#19 0x40e2ec11 in nsLeafFrame::~nsLeafFrame (this=0x86448e0, __in_chrg=0)
    at nsLeafFrame.cpp:29
#20 0x40ef92da in nsFormControlFrame::~nsFormControlFrame (this=0x86448e0,
    __in_chrg=0) at nsFormControlFrame.cpp:75
#21 0x40efbf52 in nsButtonControlFrame::~nsButtonControlFrame (this=0x86448e0,
    __in_chrg=3) at nsButtonControlFrame.cpp:560
#22 0x40e18301 in nsFrame::DeleteFrame (this=0x86448e0, aPresContext=@0x84d2808)
    at nsFrame.cpp:390
#23 0x40e2f61b in nsLineBox::DeleteLineList (aPresContext=@0x84d2808,
    aLine=0x83ed450) at nsLineBox.cpp:157
#24 0x40e0988f in nsBlockFrame::DeleteFrame (this=0x83f9710,
aPresContext=@0x84d2808)
    at nsBlockFrame.cpp:806
#25 0x40e2f61b in nsLineBox::DeleteLineList (aPresContext=@0x84d2808,
    aLine=0x85be680) at nsLineBox.cpp:157
#26 0x40e0988f in nsBlockFrame::DeleteFrame (this=0x85be270,
aPresContext=@0x84d2808)
    at nsBlockFrame.cpp:806
#27 0x40e07992 in nsAreaFrame::DeleteFrame (this=0x85be270,
aPresContext=@0x84d2808)
    at nsAreaFrame.cpp:105
#28 0x40fbd083 in nsFrameList::DeleteFrames (this=0x85bdf18,
aPresContext=@0x84d2808)
    at nsFrameList.cpp:28
#29 0x40e15bad in nsContainerFrame::DeleteFrame (this=0x85bdee0,
    aPresContext=@0x84d2808) at nsContainerFrame.cpp:79
#30 0x40fbd083 in nsFrameList::DeleteFrames (this=0x85bd4c8,
aPresContext=@0x84d2808)
    at nsFrameList.cpp:28
#31 0x40e15bad in nsContainerFrame::DeleteFrame (this=0x85bd490,
    aPresContext=@0x84d2808) at nsContainerFrame.cpp:79
#32 0x40fbd083 in nsFrameList::DeleteFrames (this=0x85bd1f0,
aPresContext=@0x84d2808)
    at nsFrameList.cpp:28
#33 0x40e15bad in nsContainerFrame::DeleteFrame (this=0x85bd1b8,
    aPresContext=@0x84d2808) at nsContainerFrame.cpp:79
---Type <return> to continue, or q <return> to quit---
#34 0x40e4d6c6 in ViewportFrame::DeleteFrame (this=0x85bd1b8,
    aPresContext=@0x84d2808) at nsViewportFrame.cpp:115
#35 0x40e39d3e in PresShell::~PresShell (this=0x83f4888, __in_chrg=3)
    at nsPresShell.cpp:548
#36 0x40e39a9b in PresShell::Release (this=0x83f4888) at nsPresShell.cpp:485
#37 0x400a4478 in nsCOMPtr_base::~nsCOMPtr_base (this=0x85cd9f4, __in_chrg=2)
    at nsCOMPtr.cpp:25
#38 0x4003d2ff in nsCOMPtr<nsIPresShell>::~nsCOMPtr (this=0x85cd9f4,
__in_chrg=2)
    at nsWebShellWindow.cpp:757
#39 0x40fb826b in DocumentViewerImpl::~DocumentViewerImpl (this=0x85cd9d0,
    __in_chrg=3) at nsDocumentViewer.cpp:240
#40 0x40fb7f78 in DocumentViewerImpl::Release (this=0x85cd9d0)
    at nsDocumentViewer.cpp:184
#41 0x402f6a17 in nsWebShell::Embed (this=0x834de08, aContentViewer=0x85ad578,
    aCommand=0x84fe8a8 "view", aExtraInfo=0x0) at nsWebShell.cpp:765
#42 0x402f410c in nsDocumentBindInfo::OnStartBinding (this=0x858a838,
    aURL=0x859acb0, aContentType=0x84f8600 "text/html") at nsDocLoader.cpp:1432
#43 0x402d9d8d in NET_NGLayoutConverter (format_out=38, converter_obj=0x0,
    URL_s=0x8582e88, context=0x8582ff8) at nsStubContext.cpp:949
#44 0x402b17ed in NET_StreamBuilder (format_out=38, URL_s=0x8582e88,
    context=0x8582ff8) at mkstream.c:237
#45 0x40272e51 in NET_CacheConverter (format_out=38, converter_obj=0x0,
    URL_s=0x8582e88, window_id=0x8582ff8) at mkcache.c:1689
#46 0x402b17ed in NET_StreamBuilder (format_out=102, URL_s=0x8582e88,
    context=0x8582ff8) at mkstream.c:237
#47 0x401d481f in net_finish_setup_http_stream (ce=0x8585950) at mkhttp.c:2877
#48 0x401d41cc in net_setup_http_stream (ce=0x8585950) at mkhttp.c:2645
#49 0x401d59b9 in net_ProcessHTTP (ce=0x8585950) at mkhttp.c:3558
#50 0x402a858e in NET_ProcessNet (ready_fd=0x85b32f8, fd_type=2) at
mkgeturl.c:3355
#51 0x402b0691 in NET_PollSockets () at mkselect.c:320
#52 0x402d2fa2 in nsNetlibService::NetPollSocketsCallback (aTimer=0x82069a0,
    aClosure=0x80bc3e0) at nsNetService.cpp:1244
#53 0x40142e75 in TimerImpl::FireTimeout (this=0x82069a0) at nsTimer.cpp:73
#54 0x401432fa in nsTimerExpired (aCallData=0x82069a0) at nsTimer.cpp:196
#55 0x406c5fa3 in g_timeout_dispatch ()
#56 0x406c52c6 in g_main_dispatch ()
#57 0x406c5801 in g_main_iterate ()
#58 0x406c5979 in g_main_run ()
#59 0x405f3f3a in gtk_main ()
#60 0x400e8d09 in nsAppShell::Run (this=0x807ba70) at nsAppShell.cpp:197
#61 0x4002935d in nsAppShellService::Run (this=0x8079128)
    at nsAppShellService.cpp:402
#62 0x804aa9c in main (argc=1, argv=0xbffffb34) at nsAppRunner.cpp:573
#63 0x4081ecb3 in __libc_start_main (main=0x8049cb0 <main>, argc=1,
argv=0xbffffb34,
    init=0x8049888 <_init>, fini=0x804ba10 <_fini>, rtld_fini=0x4000a350
<_dl_fini>,
    stack_end=0xbffffb2c) at ../sysdeps/generic/libc-start.c:78
Assignee: ftang → nisheeth
Status: ASSIGNED → NEW
I am sure this is realated to the nsWebShell::ReloadDocument method. I load the
page with "Default Charset" set to "ISO-8859-3" it does not crash . I load the
page with "Default Charset" set to other charset then it crash.

This happened when the first block data arrived include a complete meta charset
tag which cause the ReloadDocument of nsWebShell.

Reassign this to nisheeth. We need to make ReloadDocument safe to call from
nsMetaCharsetObserver.
Status: NEW → ASSIGNED
Accepting bug..
Summary: This Latin 3 test page causes a crash → [CRASH] This Latin 3 test page causes a crash
Status: ASSIGNED → RESOLVED
Closed: 25 years ago
Resolution: --- → DUPLICATE
This bug should get fixed when Necko lands.  Please see my comments in bug 7330.

*** This bug has been marked as a duplicate of 7330 ***
Blocks: 7232
"Rubber Stamping" this a verified duplicate...please verify it as dup if this is
fixed after necko lands.
Status: RESOLVED → VERIFIED
Verifying Dup...please see Bug 7330
Indeed, it's been fixed.
You need to log in before you can comment on or make changes to this bug.