Closed
      
        Bug 243174
      
      
        Opened 21 years ago
          Closed 21 years ago
      
        
    
  
browser crashes when searching at de.selfhtml.org [@ FreeArenaList ]    
    Categories
(Core :: JavaScript Engine, defect, P1)
Tracking
()
        VERIFIED
        FIXED
        
    
  
        
            mozilla1.7final
        
    
  
People
(Reporter: stefan.brandner, Assigned: brendan)
References
()
Details
(4 keywords, Whiteboard: fixed-aviary1.0)
Crash Data
Attachments
(7 files)
User-Agent:       Mozilla/5.0 (Windows; U; Windows NT 5.0; en-US; rv:1.7b) Gecko/20040421
Build Identifier: Mozilla/5.0 (Windows; U; Windows NT 5.0; en-US; rv:1.7b) Gecko/20040421
Go to the page http://de.selfhtml.org/
Press the link "SELFHTML Suche"
At the top left the search input appears.
Enter the word browser and press "Suchen"
A javscript windows pops up with a ok button.
After pressing ok the browser crashes.
Reproducible: Always
Steps to Reproduce:
1.Go to the page http://de.selfhtml.org/ and press the link "SELFHTML Suche"
2. Enter the word browser at the search input
3. after press "Suchen" a javascript window pops up
4. when pressing ok the browser crashes 
Actual Results:  
browser crash
Expected Results:  
should show the search results instead
program error:
mozilla.exe has generated errors and will be closed by Windows.
You will need to restart the program.
An error log is being created.
Confirming with Mozilla trunk build 2004050907 on WinNT4.
Crash happens, access violation at c0000005. I cannot provide TB IDs because my
installer build doesn't contain TB -- once again.
Please add the keyword crash.
| Comment 2•21 years ago
           | ||
also crashing on Linux using FF 20040510, but Talkback doesn't popup.
(Starting mozilla.org Firefox in GDB probably gives a corrupt stack so it's not
relevant, crashes in nsMUTF7ToUnicode::nsMUTF7ToUnicode... I mention it in case
others see this too)
Keywords: crash, 
          
            stackwanted
OS: Windows 2000 → All
free_dbg_lk(void * 0x03bc2ff8, int 1) line 1066 + 60 bytes
_free_dbg(void * 0x03bc2ff8, int 1) line 1001 + 13 bytes
free(void * 0x03bc2ff8) line 956 + 11 bytes
FreeArenaList(JSArenaPool * 0x0012c76c, JSArena * 0x0012c76c, int 1) line 331 +
10 bytes
JS_FinishArenaPool(JSArenaPool * 0x0012c76c) line 437 + 15 bytes
js_ExecuteRegExp(JSContext * 0x02c5dc00, JSRegExp * 0x03bcb4b0, JSString *
0x03b96678, unsigned int * 0x0012c800, int 1, long * 0x0012c95c) line 3028 + 9 bytes
match_or_replace(JSContext * 0x02c5dc00, JSObject * 0x03b96680, unsigned int 1,
long * 0x03a7728c, int (JSContext *, long, GlobData *)* 0x010cafa0
match_glob(JSContext *, long, GlobData *), GlobData * 0x0012c848, long *
0x0012c95c) line 1152 + 27 bytes
str_match(JSContext * 0x02c5dc00, JSObject * 0x03b96680, unsigned int 1, long *
0x03a7728c, long * 0x0012c95c) line 1244 + 34 bytes
js_Invoke(JSContext * 0x02c5dc00, unsigned int 1, unsigned int 0) line 1281 + 23
bytes
js_Interpret(JSContext * 0x02c5dc00, long * 0x0012d930) line 3366 + 15 bytes
js_Invoke(JSContext * 0x02c5dc00, unsigned int 1, unsigned int 0) line 1301 + 13
bytes
js_Interpret(JSContext * 0x02c5dc00, long * 0x0012e8b4) line 3366 + 15 bytes
js_Invoke(JSContext * 0x02c5dc00, unsigned int 1, unsigned int 2) line 1301 + 13
bytes
js_InternalInvoke(JSContext * 0x02c5dc00, JSObject * 0x034fb9b8, long 55556544,
unsigned int 0, unsigned int 1, long * 0x0012eb14, long * 0x0012eb10) line 1378
+ 20 bytes
JS_CallFunctionValue(JSContext * 0x02c5dc00, JSObject * 0x034fb9b8, long
55556544, unsigned int 1, long * 0x0012eb14, long * 0x0012eb10) line 3618 + 31 bytes
nsJSContext::CallEventHandler(JSObject * 0x034fb9b8, JSObject * 0x034fb9c0,
unsigned int 1, long * 0x0012eb14, long * 0x0012eb10) line 1292 + 33 bytes
nsJSEventListener::HandleEvent(nsJSEventListener * const 0x03a82738, nsIDOMEvent
* 0x03a562d0) line 174 + 51 bytes
nsEventListenerManager::HandleEventSubType(nsListenerStruct * 0x03a827f8,
nsIDOMEvent * 0x03a562d0, nsIDOMEventTarget * 0x03a7b478, unsigned int 4,
unsigned int 7) line 1434 + 20 bytes
nsEventListenerManager::HandleEvent(nsEventListenerManager * const 0x03a83210,
nsIPresContext * 0x03a54af0, nsEvent * 0x0012f1b0, nsIDOMEvent * * 0x0012ee9c,
nsIDOMEventTarget * 0x03a7b478, unsigned int 7, nsEventStatus * 0x0012f698) line
1529
nsGenericElement::HandleDOMEvent(nsIPresContext * 0x03a54af0, nsEvent *
0x0012f1b0, nsIDOMEvent * * 0x0012ee9c, unsigned int 7, nsEventStatus *
0x0012f698) line 1959
nsHTMLInputElement::HandleDOMEvent(nsIPresContext * 0x03a54af0, nsEvent *
0x0012f1b0, nsIDOMEvent * * 0x00000000, unsigned int 1, nsEventStatus *
0x0012f698) line 1395 + 31 bytes
PresShell::HandleEventInternal(nsEvent * 0x0012f1b0, nsIView * 0x00000000,
unsigned int 1, nsEventStatus * 0x0012f698) line 6025 + 44 bytes
PresShell::HandleEventWithTarget(PresShell * const 0x031ba978, nsEvent *
0x0012f1b0, nsIFrame * 0x03a57bfc, nsIContent * 0x03a830d8, unsigned int 1,
nsEventStatus * 0x0012f698) line 5980 + 22 bytes
nsEventStateManager::CheckForAndDispatchClick(nsIPresContext * 0x03a54af0,
nsMouseEvent * 0x0012f8b8, nsEventStatus * 0x0012f698) line 2958 + 66 bytes
nsEventStateManager::PostHandleEvent(nsEventStateManager * const 0x02bbf6d0,
nsIPresContext * 0x03a54af0, nsEvent * 0x0012f8b8, nsIFrame * 0x03a57bfc,
nsEventStatus * 0x0012f698, nsIView * 0x03a8ffe8) line 1979 + 23 bytes
PresShell::HandleEventInternal(nsEvent * 0x0012f8b8, nsIView * 0x03a8ffe8,
unsigned int 1, nsEventStatus * 0x0012f698) line 6077 + 52 bytes
PresShell::HandleEvent(PresShell * const 0x031ba9ec, nsIView * 0x03a8ffe8,
nsGUIEvent * 0x0012f8b8, nsEventStatus * 0x0012f698, int 0, int & 1) line 5918 +
25 bytes
nsViewManager::HandleEvent(nsView * 0x03a8c4a0, nsGUIEvent * 0x0012f8b8, int 0)
line 2233
nsViewManager::DispatchEvent(nsViewManager * const 0x00f6ca00, nsGUIEvent *
0x0012f8b8, nsEventStatus * 0x0012f790) line 1973 + 20 bytes
HandleEvent(nsGUIEvent * 0x0012f8b8) line 79
nsWindow::DispatchEvent(nsWindow * const 0x03a8fdf4, nsGUIEvent * 0x0012f8b8,
nsEventStatus & nsEventStatus_eIgnore) line 1067 + 10 bytes
nsWindow::DispatchWindowEvent(nsGUIEvent * 0x0012f8b8) line 1088
nsWindow::DispatchMouseEvent(unsigned int 301, unsigned int 0, nsPoint *
0x00000000) line 5189 + 21 bytes
ChildWindow::DispatchMouseEvent(unsigned int 301, unsigned int 0, nsPoint *
0x00000000) line 5444
nsWindow::ProcessMessage(unsigned int 514, unsigned int 0, long 1310982, long *
0x0012fd7c) line 3975 + 28 bytes
nsWindow::WindowProc(HWND__ * 0x006b0540, unsigned int 514, unsigned int 0, long
1310982) line 1349 + 27 bytes
USER32! 77d13a50()
USER32! 77d13b1f()
USER32! 77d13d79()
USER32! 77d14374()
CWinThread::Run() line 487 + 11 bytes
CWinApp::Run() line 400
AfxWinMain(HINSTANCE__ * 0x00400000, HINSTANCE__ * 0x00000000, char *
0x00142388, int 10) line 49 + 11 bytes
WinMain(HINSTANCE__ * 0x00400000, HINSTANCE__ * 0x00000000, char * 0x00142388,
int 10) line 30
WinMainCRTStartup() line 330 + 54 bytes
KERNEL32! 77e614c7()
| Comment 5•21 years ago
           | ||
Confirmed using 2004050609 Nightly on Windows 2000.  Talkback ID: TB43435X
Please change status to: NEW
Now crashed with Mozilla trunk build 2004051108 on WinNT4.
TB-ID: TB47150Y
| Comment 7•21 years ago
           | ||
| Updated•21 years ago
           | 
Assignee: general → general
Component: Browser-General → JavaScript Engine
Keywords: stackwanted
QA Contact: general → pschwartau
Summary: browser crashes when searching at de.selfhtml.org → browser crashes when searching at de.selfhtml.org [@ FreeArenaList ]
| Comment 8•21 years ago
           | ||
testcase:
javascript:alert("-+16-+59-+66-+67-+80-+82-+143-+170-+176-+189-+308-+363-+364-+365-+377-+393-+404-+405-+419-+430-+641-+732-+754-+783-+786-+972-+977-+980-+982-+1010-+1011-+1027-+1028-+1039-+1040-+1074-+1084-+1086-+1098-+1267-+1296-+1305-+1367-+1371-+1379-+1480-+1481-+1482-+1484-+1510-+1526-+1565-+1568-+1574-+1577-+1604-+1632-+1638-+1643-+1657-+1708-+1722-+1941-+1948-+1955-+1965-+1966-+2027-+2039-+2040-+2041-+2048-+2054-+2059-+2090-+2091-+2092-+2105-+2118-+".match(eval("/\\+(3|4|7|21|47|49|53|54|56|57|58|59|60|61|62|64|67|69|72|73|74|76|78|80|84|91|95|96|99|118|120|141|142|145|147|148|149|151|152|160|164|169|170|171|173|174|175|176|181|183|185|186|188|189|190|191|193|200|201|202|204|205|207|208|209|211|214|216|221|223|226|229|230|231|233|237|239|249|250|252|255|258|260|261|267|269|270|278|280|281|290|291|293|294|295|296|297|298|299|300|301|302|303|306|307|308|309|311|313|317|319|321|322|328|329|338|342|343|345|347|349|352|359|360|364|366|367|368|370|373|376|377|378|379|380|381|384|385|386|387|388|389|390|393|394|396|397|398|399|400|402|403|416|418|419|420|423|424|425|428|429|430|432|440|442|444|445|446|448|449|629|643|646|647|649|652|658|668|680|681|682|683|684|703|706|720|722|731|733|736|737|738|741|744|745|749|752|753|754|755|763|786|803|806|807|808|812|829|831|843|844|845|846|847|848|849|851|854|855|856|858|859|860|861|863|866|867|868|869|870|871|875|876|877|878|879|881|882|883|884|885|886|888|889|890|891|892|893|894|895|896|897|898|900|901|903|904|906|908|910|911|912|913|914|915|916|918|919|921|970|971|972|973|980|986|987|988|991|998|1009|1011|1015|1016|1031|1037|1038|1039|1040|1045|1046|1051|1052|1053|1054|1057|1058|1060|1064|1069|1070|1071|1074|1075|1085|1089|1090|1091|1093|1094|1095|1096|1097|1101|1103|1107|1109|1110|1112|1115|1116|1117|1171|1172|1175|1183|1184|1233|1289|1296|1300|1307|1315|1317|1327|1367|1374|1384|1392|1393|1408|1409|1412|1428|1479|1480|1481|1482|1483|1484|1485|1486|1487|1488|1490|1491|1492|1493|1497|1510|1522|1524|1565|1566|1567|1568|1573|1574|1576|1582|1584|1586|1588|1591|1592|1593|1596|1599|1600|1604|1606|1615|1616|1617|1621|1625|1631|1632|1633|1636|1640|1643|1644|1645|1646|1648|1650|1652|1655|1656|1657|1658|1660|1661|1663|1669|1670|1671|1672|1673|1675|1676|1677|1679|1680|1683|1684|1685|1686|1687|1688|1689|1695|1697|1702|1703|1704|1705|1706|1711|1712|1713|1714|1716|1722|1725|1726|1731|1738|1744|1747|1748|1749|1750|1753|1757|1761|1762|1763|1764|1765|1766|1767|1769|1771|1772|1773|1774|1775|1776|1777|1778|1779|1780|1781|1782|1783|1784|1785|1786|1788|1789|1790|1791|1792|1793|1794|1796|1797|1798|1799|1801|1802|1803|1804|1805|1806|1807|1808|1809|1810|1811|1812|1815|1816|1817|1818|1821|1822|1823|1824|1825|1827|1828|1831|1835|1840|1844|1845|1849|1850|1852|1853|1854|1855|1856|1857|1858|1859|1860|1862|1866|1867|1874|1885|1886|1887|1890|1894|1897|1898|1903|1912|1913|1917|1923|1933|1940|1941|1944|1945|1946|1947|1948|1949|1950|1963|1964|1965|1967|1971|1972|1973|1974|1978|1983|1988|1990|1991|2001|2003|2013|2015|2020|2025|2026|2027|2029|2034|2039|2040|2041|2047|2048|2049|2050|2053|2054|2055|2057|2058|2059|2060|2061|2064|2067|2070|2073|2076|2079|2082|2085|2088|2090|2092|2093|2094|2095|2096|2098|2099|2100|2101|2102|2103|2105|2114|2119|2121|2122|2124|2128|2131|2132|21|170|177|190|191|291|982|1038|1655|1978|2090|2133|1983|783|1582|2102|6|14|53|65|66|67|68|72|85|88|95|96|97|121|126|145|148|154|160|184|188|219|220|258|267|277|289|292|295|297|304|317|318|322|332|342|343|353|354|367|373|378|381|384|398|402|418|419|425|428|438|643|662|665|673|675|705|706|803|876|973|988|1013|1015|1020|1047|1091|1171|1184|1317|1400|1401|1486|1572|1590|1591|1593|1600|1621|1632|1633|1635|1636|1638|1640|1648|1657|1958|1966|1969|1973|1983|2048|2061|2064|2067|2070|2073|2076|2079|2082|2085|2088|2091|2126|2127|2128|1063|986|16|59|66|67|80|82|143|170|176|189|308|363|364|365|377|393|404|405|419|430|641|732|754|783|786|972|977|980|982|1010|1011|1027|1028|1039|1040|1074|1084|1086|1098|1267|1296|1305|1367|1371|1379|1480|1481|1482|1484|1510|1526|1565|1568|1574|1577|1604|1632|1638|1643|1657|1708|1722|1941|1948|1955|1965|1966|2027|2039|2040|2041|2048|2054|2059|2090|2091|2092|2105|2118|1300|971|2047|2050|986|1632|2049|1184|2047)-/g")));
this is crashing Windows 2003 1.7 branch 20040515 for me: TB48397M
|   | Assignee | |
| Updated•21 years ago
           | 
Assignee: general → brendan
Flags: blocking1.7? → blocking1.7+
Keywords: js1.5
Priority: -- → P1
Target Milestone: --- → mozilla1.7final
|   | Assignee | |
| Updated•21 years ago
           | 
Status: NEW → ASSIGNED
|   | Assignee | |
| Comment 9•21 years ago
           | ||
Another jsregexp.c bug, looks like.  Can someone show that this regressed when
I landed rogerl's big rewrite (2003/10/22)?  I'd appreciate any purify or
valgrind help, too, although this is easily reproduced.  Must fix for 1.7, in
any event.
/be
| Comment 10•21 years ago
           | ||
I found the following two windows versions in archive.mozilla.org:
WFM: 	Mozilla/5.0 (Windows; U; Windows NT 5.0; en-US; rv:1.5) Gecko/20031007
Crash:	Mozilla/5.0 (Windows; U; Windows NT 5.0; en-US; rv:1.6a) Gecko/20031028
Maybe someone could narrow this time window with the Linux nightlies.
|   | Assignee | |
| Comment 11•21 years ago
           | ||
Naturally, I can't get valgrind working on FC1.
Timeless, anyone: purify or valgrind help?
/be
| Comment 12•21 years ago
           | ||
this is the only output I get from valgrind running the testcase in JS shell.
Invalid read of size 4
   at 0x804F962: JS_malloc (jsapi.c:1448)
   by 0x80C249B: js_InflateString (jsstr.c:2786)
   by 0x8052907: JS_BufferIsCompilableUnit (jsapi.c:3106)
   by 0x8049526: Process (js.c:378)
   by 0x317C3637: ???
 Address 0x7C32334E is not stack'd, malloc'd or (recently) free'd
|   | ||
| Comment 13•21 years ago
           | ||
no crash :Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.6a) Gecko/ 20031021
crash: 20031022
| Comment 14•21 years ago
           | ||
this is a (more useful) log from invoking the testcase from the commandline
rather than pasting it into an interactive session.
| Comment 15•21 years ago
           | ||
Assertion failure: a->base <= a->avail && a->avail <= a->limit, at jsarena.c:345
+	a	0x018a74d8 {next=0xcdcdcdcd {next=??? base=??? limit=??? ...} 
base=0xcdcdcdcd limit=0x00000001 ...}	JSArena *
	a->avail	0xcdcdcdcd	unsigned long
	a->base	0xcdcdcdcd	unsigned long
	a->limit	0x00000001	unsigned long
 	ntdll.dll!DbgBreakPoint() 	
 	PURERT.DLL!_x_checks_timed_fn_entry()  + 0x16a3f3	
 	JS32$Purify_R_mozilla_js_src_WINNT5_@1__DBG_@OBJ.DLL!JS_Assert(const 
char * s=0x5116116c, const char * file=0x51161160, int ln=0x00000159)  Line 149 
+ 0x19	C
>	JS32$Purify_R_mozilla_js_src_WINNT5_@1__DBG_@OBJ.DLL!FreeArenaList
(JSArenaPool * pool=0x0013cd48, JSArena * head=0x0013cd48, int 
reallyFree=0x00000001)  Line 345 + 0x8f	C
 	JS32$Purify_R_mozilla_js_src_WINNT5_@1__DBG_@OBJ.DLL!JS_FinishArenaPool
(JSArenaPool * pool=0x0013cd48)  Line 480 + 0x39	C
 	JS32$Purify_R_mozilla_js_src_WINNT5_@1__DBG_@OBJ.DLL!js_ExecuteRegExp
(JSContext * cx=0x003681b8, JSRegExp * re=0x01734930, JSString * 
str=0x00369bb0, unsigned int * indexp=0x0013cdd4, int test=0x00000001, long * 
rval=0x0013cea0)  Line 3107 + 0x1b	C
 	JS32$Purify_R_mozilla_js_src_WINNT5_@1__DBG_@OBJ.DLL!match_or_replace
(JSContext * cx=0x003681b8, JSObject * obj=0x00369bc8, unsigned int 
argc=0x00000001, long * argv=0x0170842c, int (JSContext *, long, GlobData *)* 
glob=0x5113e8b6, GlobData * data=0x0013ce08, long * rval=0x0013cea0)  Line 1152 
+ 0x5d	C
 	JS32$Purify_R_mozilla_js_src_WINNT5_@1__DBG_@OBJ.DLL!str_match
(JSContext * cx=0x003681b8, JSObject * obj=0x00369bc8, unsigned int 
argc=0x00000001, long * argv=0x0170842c, long * rval=0x0013cea0)  Line 1244 + 
0x7c	C
 	JS32$Purify_R_mozilla_js_src_WINNT5_@1__DBG_@OBJ.DLL!js_Invoke
(JSContext * cx=0x003681b8, unsigned int argc=0x00000001, unsigned int 
flags=0x00000000)  Line 1281 + 0x62	C
 	JS32$Purify_R_mozilla_js_src_WINNT5_@1__DBG_@OBJ.DLL!js_Interpret
(JSContext * cx=0x003681b8, long * result=0x0013d7b4)  Line 3370 + 0x39	C
 	JS32$Purify_R_mozilla_js_src_WINNT5_@1__DBG_@OBJ.DLL!js_Execute
(JSContext * cx=0x003681b8, JSObject * chain=0x00369748, JSScript * 
script=0x0170d858, JSStackFrame * down=0x00000000, unsigned int 
flags=0x00000000, long * result=0x0013d7b4)  Line 1507 + 0x2b	C
 	JS32$Purify_R_mozilla_js_src_WINNT5_@1__DBG_@OBJ.DLL!JS_ExecuteScript
(JSContext * cx=0x003681b8, JSObject * obj=0x00369748, JSScript * 
script=0x0170d858, long * rval=0x0013d7b4)  Line 3473 + 0x4f	C
 	js$Purify_R_mozilla_js_src_WINNT5_@1__DBG_@OBJ.exe!Load(JSContext * 
cx=0x003681b8, JSObject * obj=0x00369748, unsigned int argc=0x00000001, long * 
argv=0x017083fc, long * rval=0x0013d84c)  Line 679 + 0x16	C
 	JS32$Purify_R_mozilla_js_src_WINNT5_@1__DBG_@OBJ.DLL!js_Invoke
(JSContext * cx=0x003681b8, unsigned int argc=0x00000001, unsigned int 
flags=0x00000000)  Line 1281 + 0x62	C
 	JS32$Purify_R_mozilla_js_src_WINNT5_@1__DBG_@OBJ.DLL!js_Interpret
(JSContext * cx=0x003681b8, long * result=0x0013f168)  Line 3370 + 0x39	C
 	JS32$Purify_R_mozilla_js_src_WINNT5_@1__DBG_@OBJ.DLL!js_Execute
(JSContext * cx=0x003681b8, JSObject * chain=0x00369748, JSScript * 
script=0x01708340, JSStackFrame * down=0x00000000, unsigned int 
flags=0x00000000, long * result=0x0013f168)  Line 1507 + 0x2b	C
 	JS32$Purify_R_mozilla_js_src_WINNT5_@1__DBG_@OBJ.DLL!JS_ExecuteScript
(JSContext * cx=0x003681b8, JSObject * obj=0x00369748, JSScript * 
script=0x01708340, long * rval=0x0013f168)  Line 3473 + 0x4f	C
 	js$Purify_R_mozilla_js_src_WINNT5_@1__DBG_@OBJ.exe!Process(JSContext * 
cx=0x003681b8, JSObject * obj=0x00369748, char * filename=0x00000000)  Line 390 
+ 0x16	C
 	js$Purify_R_mozilla_js_src_WINNT5_@1__DBG_@OBJ.exe!ProcessArgs
(JSContext * cx=0x003681b8, JSObject * obj=0x00369748, char * * 
argv=0x0036510c, int argc=0x00000000)  Line 568 + 0x11	C
 	js$Purify_R_mozilla_js_src_WINNT5_@1__DBG_@OBJ.exe!main(int 
argc=0x00000000, char * * argv=0x0036510c, char * * envp=0x003631f0)  Line 2426 
+ 0x15	C
 	js$Purify_R_mozilla_js_src_WINNT5_@1__DBG_@OBJ.exe!mainCRTStartup()  
Line 400 + 0xe	C
 	PURERT.DLL!_x_checks_timed_fn_entry()  + 0x1eb5	
 	js$Purify_R_mozilla_js_src_WINNT5_@1__DBG_@OBJ.exe!00408059() 	
 	js$Purify_R_mozilla_js_src_WINNT5_@1__DBG_@OBJ.exe!0040804a() 	
 	kernel32.dll!GetCurrentDirectoryW()  + 0x44	
 	ntdll.dll!RtlGetFullPathName_U()  + 0x1ee	
| Comment 16•21 years ago
           | ||
fwiw 0xcdcdcdcd is crt: clean land (new, uninitd objects)
so the first assert was:
	JS_ASSERT(a->base <= a->avail && a->avail <= a->limit);
then one line executed:
	a->avail = a->base;
then another assert:
Assertion failure: (a)->avail <= (a)->limit, at jsarena.c:347
	JS_CLEAR_UNUSED(a);
| Comment 17•21 years ago
           | ||
note that the JS_Asserts correspond to [I] Starting thread 0xe30
        Attachment #148783 -
        Attachment is patch: false
| Comment 18•21 years ago
           | ||
Just the ABW for people who don't like reading long purify logs:
[E] ABW: Array bounds write in memcpy {1 occurrence}
        Writing 16060 bytes to 0x018a3644 (81 bytes at 0x018a74af illegal)
        Address 0x018a3644 is 44 bytes into a 16023 byte block at 0x018a3618
        Address 0x018a3644 points to a HeapAlloc'd block in heap 0x00360000
        Thread ID: 0x3c8
        Error location
            memcpy+0xc           [R:\mozilla\js\src\WINNT5.1_DBG.OBJ\js32.dll 
ip=0x511547cf]
            PushBackTrackState+0x350 [r:\mozilla\js\src\jsregexp.c:1766 
ip=0x511166cf]
                        result = (REBackTrackData *) ((char *)gData-
>backTrackStack + offset);
                    }
                    gData->backTrackSP = result;
                    result->sz = gData->cursz;
                    gData->cursz = sz;
                
                    result->backtrack_op = op;
                    result->backtrack_pc = target;
                    result->cp = cp;
                    result->parenCount = parenCount;
                
                    result->precedingStateTop = gData->stateStackTop;
                    JS_ASSERT(gData->stateStackTop);
                    memcpy(result + 1, gData->stateStack,
             =>            sizeof(REProgState) * result->precedingStateTop);
                
                    if (parenCount != -1) {
                        result->parenIndex = parenIndex;
                        memcpy((char *)(result + 1) +
                               sizeof(REProgState) * result->precedingStateTop,
                               &x->parens[parenIndex],
                               sizeof(RECapture) * parenCount);
                        for (i = 0; i < parenCount; i++)
                            x->parens[parenIndex + i].index = -1;
                    }
                
                    return result;
                }
                
            ExecuteREBytecode+0xafe [r:\mozilla\js\src\jsregexp.c:2450 
ip=0x51113e76]
            MatchRegExp+0x146    [r:\mozilla\js\src\jsregexp.c:2832 
ip=0x51113296]
            js_ExecuteRegExp+0x3ff [r:\mozilla\js\src\jsregexp.c:2931 
ip=0x51112097]
            match_or_replace+0x7c6 [r:\mozilla\js\src\jsstr.c:1152 
ip=0x5113e2d0]
            str_match+0xe1       [r:\mozilla\js\src\jsstr.c:1244 ip=0x5113da84]
            js_Invoke+0x19f7     [r:\mozilla\js\src\jsinterp.c:1281 
ip=0x5108eb08]
            js_Interpret+0x1d5a3 [r:\mozilla\js\src\jsinterp.c:3370 
ip=0x510ae6d8]
            js_Execute+0x7b8     [r:\mozilla\js\src\jsinterp.c:1507 
ip=0x510907fe]
            JS_ExecuteScript+0x5e [r:\mozilla\js\src\jsapi.c:3473 ip=0x51017e80]
            Load+0xec            [r:\mozilla\js\src\js.c:679 ip=0x00401341]
            js_Invoke+0x19f7     [r:\mozilla\js\src\jsinterp.c:1281 
ip=0x5108eb08]
            js_Interpret+0x1d5a3 [r:\mozilla\js\src\jsinterp.c:3370 
ip=0x510ae6d8]
            js_Execute+0x7b8     [r:\mozilla\js\src\jsinterp.c:1507 
ip=0x510907fe]
            JS_ExecuteScript+0x5e [r:\mozilla\js\src\jsapi.c:3473 ip=0x51017e80]
            Process+0x2a1        [r:\mozilla\js\src\js.c:390 ip=0x00403f5e]
            ProcessArgs+0x42b    [r:\mozilla\js\src\js.c:568 ip=0x00403c35]
            main+0x1eb           [r:\mozilla\js\src\js.c:2426 ip=0x004037dd]
            mainCRTStartup+0x143 [f:\vs70builds\9466
\vc\crtbld\crt\src\crtexe.c:400 ip=0x00404367]
            _except_list+0x59    [R:\mozilla\js\src\WINNT5.1_DBG.OBJ\js.exe 
ip=0x00408059]
| Comment 19•21 years ago
           | ||
My tree is mostly current,
File: jsregexp.c	Status: Needs Patch
   Working revision:	3.82
is one rev out of date (a patch brendan made recently), the diffs attached
don't affect program control (it's essentially #if 0), but they do affect line
numbers (sorry). my jsconfig.h also defines a 151 version which is basically
150 + JS_HAS_XDR_FREEZE_THAW. This jsshell was built with that version. It
should not affect anything.
| Comment 20•21 years ago
           | ||
From the ABW:
-	gData->stateStack	0x018a74ec {continue_pc=0xcdcdcdcd <Bad Ptr> 
continue_op=0xcd 'Í' index=0xcdcd ...}	REProgState *
|+	continue_pc	0xcdcdcdcd <Bad Ptr>	unsigned char *
|	continue_op	0xcd 'Í'	unsigned char
|	index	0xcdcd	unsigned short
|	parenSoFar	0x00000001	unsigned int
\-	u	{quantifier={min=0xcdcd max=0xcdcd } assertion={top=0xcdcdcdcd 
sz=0xcdcdcdcd } }	__unnamed
 |+	quantifier	{min=0xcdcd max=0xcdcd }	__unnamed
 \+	assertion	{top=0xcdcdcdcd sz=0xcdcdcdcd }	__unnamed
-	gData	0x0013cd14 {cx=0x003681b8 {links={next=0x00365380 
{next=0x003681b8 prev=0x003681b8 } prev=0x00365380 {next=0x003681b8 
prev=0x003681b8 } } interpLevel=0x00000002 stackLimit=0x00000000 ...} 
regexp=0x01734930 {nrefs=0x00000001 flags=0x0002 cloneIndex=0x0000 ...} 
ok=0x00000001 ...}	REGlobalData *
|+	cx	0x003681b8 {links={next=0x00365380 {next=0x003681b8 
{next=0x00365380 prev=0x00365380 } prev=0x003681b8 {next=0x00365380 
prev=0x00365380 } } prev=0x00365380 {next=0x003681b8 {next=0x00365380 
prev=0x00365380 } prev=0x003681b8 {next=0x00365380 prev=0x00365380 } } } 
interpLevel=0x00000002 stackLimit=0x00000000 ...}	JSContext *
|+	regexp	0x01734930 {nrefs=0x00000001 flags=0x0002 cloneIndex=0x0000 ...}
	JSRegExp *
|	ok	0x00000001	int
|	start	0x0000015e	unsigned int
|	skipped	0x00000000	int
|+	cpbegin	0x0170c2d0 "-+16-+59-+66-+67-+80-+82-+143-+170-+176-+189-+308-
+363-+364-+365-+377-+393-+404-+405-+419-+430-+641-+732-+754-+783-+786-+972-+977-
+980-+982-+1010-+1011-+1027-+1028-+1039-+1040-+1074-+1084-+1086-+1098-+1267-
+1296-+1305-+1367-+1371-+1379-+1480-+1481-+1482-+1484-+1510-+1526-+1565-+1568-
+1574-+1577-+1604-+1632-+1638-+1643-+1657-+1708-+1722-+1941-+1948-+1955-+1965-
+1966-+2027-+2039-+2040-+2041-+2048-+2054-+2059-+2090-+2091-+2092-+2105-+2118-+"
	const unsigned short *
|+	cpend	0x0170c642 ""	const unsigned short *
|+	stateStack	0x018a74ec {continue_pc=0xcdcdcdcd <Bad Ptr> 
continue_op=0xcd 'Í' index=0xcdcd ...}	REProgState *
|	stateStackTop	0x0323	unsigned short
|	maxStateStack	0x0640	unsigned short
|+	backTrackStack	0x018a362c {sz=0x00000000 backtrack_pc=0x01736bbf "" 
backtrack_op=0x01 '␁' ...}	REBackTrackData *
|+	backTrackSP	0x018a362c {sz=0x00000000 backtrack_pc=0x01736bbf "" 
backtrack_op=0x01 '␁' ...}	REBackTrackData *
|	maxBackTrack	0x00003e80	unsigned int
|	cursz	0x00003ed4	unsigned int
\+	pool	{first={next=0x0189d678 {next=0x0189f658 {next=0x018a1638 
base=0x0189f668 limit=0x018a160b ...} base=0x0189d688 limit=0x0189f62b ...} 
base=0x0013cd58 limit=0x0013cd58 ...} current=0x018a3618 {next=0x00000000 
{next=??? base=??? limit=??? ...} base=0x018a362c limit=0x018a74af ...} 
arenasize=0x00001fa0 ...}	JSArenaPool
|   | Assignee | |
| Comment 21•21 years ago
           | ||
This code is ugly, with misnomers and cybercrud names all over.
The essential fix is to avoid assuming in PushBackTrackState that doubling the
backtrack stack size will suffice to hold the new result.
/be
|   | Assignee | |
| Comment 22•21 years ago
           | ||
Comment on attachment 148787 [details] [diff] [review]
proposed fix (non-minimal)
Want to get this into 1.8a tonight.
/be
        Attachment #148787 -
        Flags: review?(shaver)
|   | Assignee | |
| Comment 23•21 years ago
           | ||
Thanks to timeless for the ABW info in comment 20.
/be
| Comment 24•21 years ago
           | ||
Comment on attachment 148787 [details] [diff] [review]
proposed fix (non-minimal)
r=shaver
        Attachment #148787 -
        Flags: review?(shaver) → review+
|   | Assignee | |
| Comment 25•21 years ago
           | ||
Comment on attachment 148787 [details] [diff] [review]
proposed fix (non-minimal)
This should go in for 1.7 also.  I don't think it needs baking on the trunk; it
passes the JS testsuite and this bug's regression test.
/be
        Attachment #148787 -
        Flags: approval1.7?
| Comment 26•21 years ago
           | ||
Comment on attachment 148787 [details] [diff] [review]
proposed fix (non-minimal)
a=asa (on behalf of drivers) for checkin to 1.7
        Attachment #148787 -
        Flags: approval1.7? → approval1.7+
|   | Assignee | |
| Comment 27•21 years ago
           | ||
Fixed on 1.7 branch and trunk.  Yet another fix for the aviary branch to pick up.
/be
| Updated•21 years ago
           | 
Whiteboard: fixed-aviary1.0
|   | ||
| Comment 28•21 years ago
           | ||
Verified as fix on latest 1.7 branch Win 06-24,Mac 06-30 & Linux 0629 builds.
Changing keywords from fixed1.7 to verified1.7.
Leave this bug status "as is" until this bug be verified on trunk again...
Keywords: fixed1.7 → verified1.7
| Comment 29•20 years ago
           | ||
thanks to be.
| Comment 30•20 years ago
           | ||
js1_5/Regress/regress-243174.js checked in.
| Updated•20 years ago
           | 
Flags: testcase+
| Updated•14 years ago
           | 
Crash Signature: [@ FreeArenaList ]
          You need to log in
          before you can comment on or make changes to this bug.
        
Description
•