Bug 116092 - label-input infinite recursion
Summary: label-input infinite recursion
Status: RESOLVED FIXED
Alias: None
Product: konqueror
Classification: Applications
Component: khtml renderer (show other bugs)
Version: unspecified
Platform: Debian testing Linux
: NOR crash
Target Milestone: ---
Assignee: Konqueror Developers
URL:
Keywords:
: 128830 (view as bug list)
Depends on:
Blocks:
 
Reported: 2005-11-10 21:22 UTC by Florent Bayle
Modified: 2006-07-30 17:03 UTC (History)
2 users (show)

See Also:
Latest Commit:
Version Fixed In:


Attachments
test case (674 bytes, text/html)
2006-06-17 23:52 UTC, Allan Sandfeld
Details
Possible patch (496 bytes, patch)
2006-06-18 00:41 UTC, Allan Sandfeld
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Florent Bayle 2005-11-10 21:22:08 UTC
Version:            (using KDE KDE 3.4.2)
Installed from:    Debian testing/unstable Packages
OS:                Linux

Konqueror always segfault when loading the following html file and clicking on "Click here !" :

<html>
    <head>
        <style type="text/css">
            #form_id #p_id input {
                display:none;
            }
            #form_id #p_id .span_class label {
                display:block;
            }
        </style>
    </head>        

    <body>
        <form method="post" id="form_id" action="">
            <p id="p_id">
                <span class="span_class">
                    <label for="input_id">
                        <input id="input_id">
                            Click here !
                        </input>
                    </label>
                </span>
            </p>
        </form>
    </body>
</html>
Comment 1 Thiago Macieira 2005-11-11 02:34:10 UTC
It doesn't crash here. Can you provide the crsah backtrace?
Comment 2 Maksim Orlovich 2005-11-11 02:44:10 UTC
Thiago: took a couple of clicks for me. Nice infinite loop between <label> and an input element.  cute.

#0  0xb63ca6a9 in khtml::RenderBlock::isPointInScrollbar (this=0x83cf714, _x=-2000, _y=-2000, _tx=10, _ty=26)
    at /home/maksim/kde3/kdelibs/khtml/rendering/render_block.cpp:2342
#1  0xb63cfe17 in khtml::RenderBlock::nodeAtPoint (this=0x83cf714, info=@0xbf474508, _x=-2000, _y=-2000, _tx=10, _ty=10,
    hitTestAction=HitTestAll, inBox=false) at /home/maksim/kde3/kdelibs/khtml/rendering/render_block.cpp:2378
#2  0xb63dcc6c in khtml::RenderObject::nodeAtPoint (this=0x83cf48c, info=@0xbf474508, _x=-2000, _y=-2000, _tx=10, _ty=10,
    hitTestAction=HitTestAll, inside=false) at /home/maksim/kde3/kdelibs/khtml/rendering/render_object.cpp:1660
#3  0xb63cfe68 in khtml::RenderBlock::nodeAtPoint (this=0x83cf48c, info=@0xbf474508, _x=-2000, _y=-2000, _tx=10, _ty=10,
    hitTestAction=HitTestAll, inBox=false) at /home/maksim/kde3/kdelibs/khtml/rendering/render_block.cpp:2396
#4  0xb63dcc6c in khtml::RenderObject::nodeAtPoint (this=0x83cf414, info=@0xbf474508, _x=-2000, _y=-2000, _tx=10, _ty=10,
    hitTestAction=HitTestAll, inside=false) at /home/maksim/kde3/kdelibs/khtml/rendering/render_object.cpp:1660
#5  0xb63cfe68 in khtml::RenderBlock::nodeAtPoint (this=0x83cf414, info=@0xbf474508, _x=-2000, _y=-2000, _tx=10, _ty=10,
    hitTestAction=HitTestAll, inBox=false) at /home/maksim/kde3/kdelibs/khtml/rendering/render_block.cpp:2396
#6  0xb63dcc6c in khtml::RenderObject::nodeAtPoint (this=0x83cf39c, info=@0xbf474508, _x=-2000, _y=-2000, _tx=0, _ty=0,
    hitTestAction=HitTestAll, inside=true) at /home/maksim/kde3/kdelibs/khtml/rendering/render_object.cpp:1660
#7  0xb63cfe68 in khtml::RenderBlock::nodeAtPoint (this=0x83cf39c, info=@0xbf474508, _x=-2000, _y=-2000, _tx=0, _ty=0,
    hitTestAction=HitTestAll, inBox=false) at /home/maksim/kde3/kdelibs/khtml/rendering/render_block.cpp:2396
#8  0xb63dcc6c in khtml::RenderObject::nodeAtPoint (this=0x83cf2c8, info=@0xbf474508, _x=-2000, _y=-2000, _tx=0, _ty=0,
    hitTestAction=HitTestChildrenOnly, inside=false) at /home/maksim/kde3/kdelibs/khtml/rendering/render_object.cpp:1660
#9  0xb63cfe68 in khtml::RenderBlock::nodeAtPoint (this=0x83cf2c8, info=@0xbf474508, _x=-2000, _y=-2000, _tx=0, _ty=0,
    hitTestAction=HitTestChildrenOnly, inBox=false) at /home/maksim/kde3/kdelibs/khtml/rendering/render_block.cpp:2396
#10 0xb63f718d in khtml::RenderLayer::nodeAtPointForLayer (this=0x83cf340, rootLayer=0x83cf26c, info=@0xbf474508,
    xMousePos=-2000, yMousePos=-2000, hitTestRect=@0xbf4744b8)
    at /home/maksim/kde3/kdelibs/khtml/rendering/render_layer.cpp:935
#11 0xb63f703b in khtml::RenderLayer::nodeAtPointForLayer (this=0x83cf26c, rootLayer=0x83cf26c, info=@0xbf474508,
    xMousePos=-2000, yMousePos=-2000, hitTestRect=@0xbf4744b8)
    at /home/maksim/kde3/kdelibs/khtml/rendering/render_layer.cpp:927
#12 0xb63f72b8 in khtml::RenderLayer::nodeAtPoint (this=0x83cf26c, info=@0xbf474508, x=-2000, y=-2000)
    at /home/maksim/kde3/kdelibs/khtml/rendering/render_layer.cpp:889
#13 0xb638a90f in DOM::MouseEventImpl::computeLayerPos (this=0x8ac9ef0)
    at /home/maksim/kde3/kdelibs/khtml/xml/dom2_eventsimpl.cpp:407
#14 0xb638c23e in MouseEventImpl (this=0x8ac9ef0, _id=DOM::EventImpl::MOUSEUP_EVENT, canBubbleArg=true,
    cancelableArg=true, viewArg=0x83e9278, detailArg=1, screenXArg=-2000, screenYArg=-2000, clientXArg=-2000,
    clientYArg=-2000, pageXArg=-2000, pageYArg=-2000, ctrlKeyArg=false, altKeyArg=false, shiftKeyArg=false,
    metaKeyArg=false, buttonArg=0, relatedTargetArg=0x0, qe=0xfffff830, isDoubleClick=false)
    at /home/maksim/kde3/kdelibs/khtml/xml/dom2_eventsimpl.cpp:388
---Type <return> to continue, or q <return> to quit---
#15 0xb63768ee in DOM::NodeImpl::dispatchMouseEvent (this=0x8408a60, _mouse=0xbf47462c, overrideId=0, overrideDetail=1)
    at /home/maksim/kde3/kdelibs/khtml/xml/dom_nodeimpl.cpp:600
#16 0xb63ad6d8 in DOM::HTMLInputElementImpl::click (this=0x8408a60)
    at /home/maksim/kde3/kdelibs/khtml/html/html_formimpl.cpp:1334
#17 0xb63ae833 in DOM::HTMLLabelElementImpl::defaultEventHandler (this=0x84088b8, evt=0x8ac9dd8)
    at /home/maksim/kde3/kdelibs/khtml/html/html_formimpl.cpp:1824
#18 0xb6376372 in DOM::NodeImpl::dispatchGenericEvent (this=0x8408a60, evt=0x8ac9dd8)
    at /home/maksim/kde3/kdelibs/khtml/xml/dom_nodeimpl.cpp:468
#19 0xb6376732 in DOM::NodeImpl::dispatchEvent (this=0x8408a60, evt=0x8ac9dd8, exceptioncode=@0xbf474784, tempEvent=true)
    at /home/maksim/kde3/kdelibs/khtml/xml/dom_nodeimpl.cpp:412
#20 0xb6376911 in DOM::NodeImpl::dispatchMouseEvent (this=0x8408a60, _mouse=0xbf4747cc, overrideId=4, overrideDetail=1)
    at /home/maksim/kde3/kdelibs/khtml/xml/dom_nodeimpl.cpp:602
#21 0xb63ad6e3 in DOM::HTMLInputElementImpl::click (this=0x8408a60)
    at /home/maksim/kde3/kdelibs/khtml/html/html_formimpl.cpp:1335
#22 0xb63ae833 in DOM::HTMLLabelElementImpl::defaultEventHandler (this=0x84088b8, evt=0x8ac9cc0)
    at /home/maksim/kde3/kdelibs/khtml/html/html_formimpl.cpp:1824
#23 0xb6376372 in DOM::NodeImpl::dispatchGenericEvent (this=0x8408a60, evt=0x8ac9cc0)
    at /home/maksim/kde3/kdelibs/khtml/xml/dom_nodeimpl.cpp:468
#24 0xb6376732 in DOM::NodeImpl::dispatchEvent (this=0x8408a60, evt=0x8ac9cc0, exceptioncode=@0xbf474924, tempEvent=true)
    at /home/maksim/kde3/kdelibs/khtml/xml/dom_nodeimpl.cpp:412
#25 0xb6376911 in DOM::NodeImpl::dispatchMouseEvent (this=0x8408a60, _mouse=0xbf47496c, overrideId=4, overrideDetail=1)
    at /home/maksim/kde3/kdelibs/khtml/xml/dom_nodeimpl.cpp:602
#26 0xb63ad6e3 in DOM::HTMLInputElementImpl::click (this=0x8408a60)
    at /home/maksim/kde3/kdelibs/khtml/html/html_formimpl.cpp:1335
#27 0xb63ae833 in DOM::HTMLLabelElementImpl::defaultEventHandler (this=0x84088b8, evt=0x8ac9ba8)
    at /home/maksim/kde3/kdelibs/khtml/html/html_formimpl.cpp:1824
#28 0xb6376372 in DOM::NodeImpl::dispatchGenericEvent (this=0x8408a60, evt=0x8ac9ba8)
    at /home/maksim/kde3/kdelibs/khtml/xml/dom_nodeimpl.cpp:468
#29 0xb6376732 in DOM::NodeImpl::dispatchEvent (this=0x8408a60, evt=0x8ac9ba8, exceptioncode=@0xbf474ac4, tempEvent=true)
    at /home/maksim/kde3/kdelibs/khtml/xml/dom_nodeimpl.cpp:412
#30 0xb6376911 in DOM::NodeImpl::dispatchMouseEvent (this=0x8408a60, _mouse=0xbf474b0c, overrideId=4, overrideDetail=1)
    at /home/maksim/kde3/kdelibs/khtml/xml/dom_nodeimpl.cpp:602
#31 0xb63ad6e3 in DOM::HTMLInputElementImpl::click (this=0x8408a60)
    at /home/maksim/kde3/kdelibs/khtml/html/html_formimpl.cpp:1335
#32 0xb63ae833 in DOM::HTMLLabelElementImpl::defaultEventHandler (this=0x84088b8, evt=0x8ac9a90)
---Type <return> to continue, or q <return> to quit---
    at /home/maksim/kde3/kdelibs/khtml/html/html_formimpl.cpp:1824
#33 0xb6376372 in DOM::NodeImpl::dispatchGenericEvent (this=0x8408a60, evt=0x8ac9a90)
    at /home/maksim/kde3/kdelibs/khtml/xml/dom_nodeimpl.cpp:468
#34 0xb6376732 in DOM::NodeImpl::dispatchEvent (this=0x8408a60, evt=0x8ac9a90, exceptioncode=@0xbf474c64, tempEvent=true)
    at /home/maksim/kde3/kdelibs/khtml/xml/dom_nodeimpl.cpp:412
#35 0xb6376911 in DOM::NodeImpl::dispatchMouseEvent (this=0x8408a60, _mouse=0xbf474cac, overrideId=4, overrideDetail=1)
    at /home/maksim/kde3/kdelibs/khtml/xml/dom_nodeimpl.cpp:602
#36 0xb63ad6e3 in DOM::HTMLInputElementImpl::click (this=0x8408a60)
    at /home/maksim/kde3/kdelibs/khtml/html/html_formimpl.cpp:1335
#37 0xb63ae833 in DOM::HTMLLabelElementImpl::defaultEventHandler (this=0x84088b8, evt=0x8ac9978)
    at /home/maksim/kde3/kdelibs/khtml/html/html_formimpl.cpp:1824
#38 0xb6376372 in DOM::NodeImpl::dispatchGenericEvent (this=0x8408a60, evt=0x8ac9978)
    at /home/maksim/kde3/kdelibs/khtml/xml/dom_nodeimpl.cpp:468

#39 0xb6376732 in DOM::NodeImpl::dispatchEvent (this=0x8408a60, evt=0x8ac9978, exceptioncode=@0xbf474e04, tempEvent=true)
    at /home/maksim/kde3/kdelibs/khtml/xml/dom_nodeimpl.cpp:412
#40 0xb6376911 in DOM::NodeImpl::dispatchMouseEvent (this=0x8408a60, _mouse=0xbf474e4c, overrideId=4, overrideDetail=1)
    at /home/maksim/kde3/kdelibs/khtml/xml/dom_nodeimpl.cpp:602
#41 0xb63ad6e3 in DOM::HTMLInputElementImpl::click (this=0x8408a60)
    at /home/maksim/kde3/kdelibs/khtml/html/html_formimpl.cpp:1335
#42 0xb63ae833 in DOM::HTMLLabelElementImpl::defaultEventHandler (this=0x84088b8, evt=0x8ac9860)
    at /home/maksim/kde3/kdelibs/khtml/html/html_formimpl.cpp:1824
#43 0xb6376372 in DOM::NodeImpl::dispatchGenericEvent (this=0x8408a60, evt=0x8ac9860)
    at /home/maksim/kde3/kdelibs/khtml/xml/dom_nodeimpl.cpp:468
#44 0xb6376732 in DOM::NodeImpl::dispatchEvent (this=0x8408a60, evt=0x8ac9860, exceptioncode=@0xbf474fa4, tempEvent=true)
    at /home/maksim/kde3/kdelibs/khtml/xml/dom_nodeimpl.cpp:412
#45 0xb6376911 in DOM::NodeImpl::dispatchMouseEvent (this=0x8408a60, _mouse=0xbf474fec, overrideId=4, overrideDetail=1)
    at /home/maksim/kde3/kdelibs/khtml/xml/dom_nodeimpl.cpp:602
#46 0xb63ad6e3 in DOM::HTMLInputElementImpl::click (this=0x8408a60)
    at /home/maksim/kde3/kdelibs/khtml/html/html_formimpl.cpp:1335
#47 0xb63ae833 in DOM::HTMLLabelElementImpl::defaultEventHandler (this=0x84088b8, evt=0x8ac9748)
    at /home/maksim/kde3/kdelibs/khtml/html/html_formimpl.cpp:1824
#48 0xb6376372 in DOM::NodeImpl::dispatchGenericEvent (this=0x8408a60, evt=0x8ac9748)
    at /home/maksim/kde3/kdelibs/khtml/xml/dom_nodeimpl.cpp:468
#49 0xb6376732 in DOM::NodeImpl::dispatchEvent (this=0x8408a60, evt=0x8ac9748, exceptioncode=@0xbf475144, tempEvent=true)
    at /home/maksim/kde3/kdelibs/khtml/xml/dom_nodeimpl.cpp:412
---Type <return> to continue, or q <return> to quit---
#50 0xb6376911 in DOM::NodeImpl::dispatchMouseEvent (this=0x8408a60, _mouse=0xbf47518c, overrideId=4, overrideDetail=1)
    at /home/maksim/kde3/kdelibs/khtml/xml/dom_nodeimpl.cpp:602
#51 0xb63ad6e3 in DOM::HTMLInputElementImpl::click (this=0x8408a60)
    at /home/maksim/kde3/kdelibs/khtml/html/html_formimpl.cpp:1335
#52 0xb63ae833 in DOM::HTMLLabelElementImpl::defaultEventHandler (this=0x84088b8, evt=0x8ac9630)
    at /home/maksim/kde3/kdelibs/khtml/html/html_formimpl.cpp:1824
#53 0xb6376372 in DOM::NodeImpl::dispatchGenericEvent (this=0x8408a60, evt=0x8ac9630)
    at /home/maksim/kde3/kdelibs/khtml/xml/dom_nodeimpl.cpp:468
#54 0xb6376732 in DOM::NodeImpl::dispatchEvent (this=0x8408a60, evt=0x8ac9630, exceptioncode=@0xbf4752e4, tempEvent=true)
    at /home/maksim/kde3/kdelibs/khtml/xml/dom_nodeimpl.cpp:412
#55 0xb6376911 in DOM::NodeImpl::dispatchMouseEvent (this=0x8408a60, _mouse=0xbf47532c, overrideId=4, overrideDetail=1)
    at /home/maksim/kde3/kdelibs/khtml/xml/dom_nodeimpl.cpp:602
#56 0xb63ad6e3 in DOM::HTMLInputElementImpl::click (this=0x8408a60)
    at /home/maksim/kde3/kdelibs/khtml/html/html_formimpl.cpp:1335
#57 0xb63ae833 in DOM::HTMLLabelElementImpl::defaultEventHandler (this=0x84088b8, evt=0x8ac9518)
    at /home/maksim/kde3/kdelibs/khtml/html/html_formimpl.cpp:1824
#58 0xb6376372 in DOM::NodeImpl::dispatchGenericEvent (this=0x8408a60, evt=0x8ac9518)
    at /home/maksim/kde3/kdelibs/khtml/xml/dom_nodeimpl.cpp:468
#59 0xb6376732 in DOM::NodeImpl::dispatchEvent (this=0x8408a60, evt=0x8ac9518, exceptioncode=@0xbf475484, tempEvent=true)
    at /home/maksim/kde3/kdelibs/khtml/xml/dom_nodeimpl.cpp:412
#60 0xb6376911 in DOM::NodeImpl::dispatchMouseEvent (this=0x8408a60, _mouse=0xbf4754cc, overrideId=4, overrideDetail=1)
    at /home/maksim/kde3/kdelibs/khtml/xml/dom_nodeimpl.cpp:602
#61 0xb63ad6e3 in DOM::HTMLInputElementImpl::click (this=0x8408a60)
    at /home/maksim/kde3/kdelibs/khtml/html/html_formimpl.cpp:1335
#62 0xb63ae833 in DOM::HTMLLabelElementImpl::defaultEventHandler (this=0x84088b8, evt=0x8ac9400)
    at /home/maksim/kde3/kdelibs/khtml/html/html_formimpl.cpp:1824
#63 0xb6376372 in DOM::NodeImpl::dispatchGenericEvent (this=0x8408a60, evt=0x8ac9400)
    at /home/maksim/kde3/kdelibs/khtml/xml/dom_nodeimpl.cpp:468
#64 0xb6376732 in DOM::NodeImpl::dispatchEvent (this=0x8408a60, evt=0x8ac9400, exceptioncode=@0xbf475624, tempEvent=true)
    at /home/maksim/kde3/kdelibs/khtml/xml/dom_nodeimpl.cpp:412
#65 0xb6376911 in DOM::NodeImpl::dispatchMouseEvent (this=0x8408a60, _mouse=0xbf47566c, overrideId=4, overrideDetail=1)
    at /home/maksim/kde3/kdelibs/khtml/xml/dom_nodeimpl.cpp:602
#66 0xb63ad6e3 in DOM::HTMLInputElementImpl::click (this=0x8408a60)
    at /home/maksim/kde3/kdelibs/khtml/html/html_formimpl.cpp:1335
#67 0xb63ae833 in DOM::HTMLLabelElementImpl::defaultEventHandler (this=0x84088b8, evt=0x8ac92e8)
---Type <return> to continue, or q <return> to quit---
    at /home/maksim/kde3/kdelibs/khtml/html/html_formimpl.cpp:1824
#68 0xb6376372 in DOM::NodeImpl::dispatchGenericEvent (this=0x8408a60, evt=0x8ac92e8)
    at /home/maksim/kde3/kdelibs/khtml/xml/dom_nodeimpl.cpp:468
#69 0xb6376732 in DOM::NodeImpl::dispatchEvent (this=0x8408a60, evt=0x8ac92e8, exceptioncode=@0xbf4757c4, tempEvent=true)
    at /home/maksim/kde3/kdelibs/khtml/xml/dom_nodeimpl.cpp:412
#70 0xb6376911 in DOM::NodeImpl::dispatchMouseEvent (this=0x8408a60, _mouse=0xbf47580c, overrideId=4, overrideDetail=1)
    at /home/maksim/kde3/kdelibs/khtml/xml/dom_nodeimpl.cpp:602
#71 0xb63ad6e3 in DOM::HTMLInputElementImpl::click (this=0x8408a60)
    at /home/maksim/kde3/kdelibs/khtml/html/html_formimpl.cpp:1335
#72 0xb63ae833 in DOM::HTMLLabelElementImpl::defaultEventHandler (this=0x84088b8, evt=0x8ac91d0)
    at /home/maksim/kde3/kdelibs/khtml/html/html_formimpl.cpp:1824
#73 0xb6376372 in DOM::NodeImpl::dispatchGenericEvent (this=0x8408a60, evt=0x8ac91d0)
    at /home/maksim/kde3/kdelibs/khtml/xml/dom_nodeimpl.cpp:468
#74 0xb6376732 in DOM::NodeImpl::dispatchEvent (this=0x8408a60, evt=0x8ac91d0, exceptioncode=@0xbf475964, tempEvent=true)
    at /home/maksim/kde3/kdelibs/khtml/xml/dom_nodeimpl.cpp:412
#75 0xb6376911 in DOM::NodeImpl::dispatchMouseEvent (this=0x8408a60, _mouse=0xbf4759ac, overrideId=4, overrideDetail=1)
    at /home/maksim/kde3/kdelibs/khtml/xml/dom_nodeimpl.cpp:602
#76 0xb63ad6e3 in DOM::HTMLInputElementImpl::click (this=0x8408a60)
    at /home/maksim/kde3/kdelibs/khtml/html/html_formimpl.cpp:1335
#77 0xb63ae833 in DOM::HTMLLabelElementImpl::defaultEventHandler (this=0x84088b8, evt=0x8ac90b8)
    at /home/maksim/kde3/kdelibs/khtml/html/html_formimpl.cpp:1824
#78 0xb6376372 in DOM::NodeImpl::dispatchGenericEvent (this=0x8408a60, evt=0x8ac90b8)
    at /home/maksim/kde3/kdelibs/khtml/xml/dom_nodeimpl.cpp:468
#79 0xb6376732 in DOM::NodeImpl::dispatchEvent (this=0x8408a60, evt=0x8ac90b8, exceptioncode=@0xbf475b04, tempEvent=true)
    at /home/maksim/kde3/kdelibs/khtml/xml/dom_nodeimpl.cpp:412
#80 0xb6376911 in DOM::NodeImpl::dispatchMouseEvent (this=0x8408a60, _mouse=0xbf475b4c, overrideId=4, overrideDetail=1)
    at /home/maksim/kde3/kdelibs/khtml/xml/dom_nodeimpl.cpp:602
#81 0xb63ad6e3 in DOM::HTMLInputElementImpl::click (this=0x8408a60)
    at /home/maksim/kde3/kdelibs/khtml/html/html_formimpl.cpp:1335
#82 0xb63ae833 in DOM::HTMLLabelElementImpl::defaultEventHandler (this=0x84088b8, evt=0x8ac8fa0)
    at /home/maksim/kde3/kdelibs/khtml/html/html_formimpl.cpp:1824
#83 0xb6376372 in DOM::NodeImpl::dispatchGenericEvent (this=0x8408a60, evt=0x8ac8fa0)
    at /home/maksim/kde3/kdelibs/khtml/xml/dom_nodeimpl.cpp:468
#84 0xb6376732 in DOM::NodeImpl::dispatchEvent (this=0x8408a60, evt=0x8ac8fa0, exceptioncode=@0xbf475ca4, tempEvent=true)
    at /home/maksim/kde3/kdelibs/khtml/xml/dom_nodeimpl.cpp:412
---Type <return> to continue, or q <return> to quit---
#85 0xb6376911 in DOM::NodeImpl::dispatchMouseEvent (this=0x8408a60, _mouse=0xbf475cec, overrideId=4, overrideDetail=1)
    at /home/maksim/kde3/kdelibs/khtml/xml/dom_nodeimpl.cpp:602
#86 0xb63ad6e3 in DOM::HTMLInputElementImpl::click (this=0x8408a60)
    at /home/maksim/kde3/kdelibs/khtml/html/html_formimpl.cpp:1335
#87 0xb63ae833 in DOM::HTMLLabelElementImpl::defaultEventHandler (this=0x84088b8, evt=0x8ac8e88)
    at /home/maksim/kde3/kdelibs/khtml/html/html_formimpl.cpp:1824
#88 0xb6376372 in DOM::NodeImpl::dispatchGenericEvent (this=0x8408a60, evt=0x8ac8e88)
    at /home/maksim/kde3/kdelibs/khtml/xml/dom_nodeimpl.cpp:468
#89 0xb6376732 in DOM::NodeImpl::dispatchEvent (this=0x8408a60, evt=0x8ac8e88, exceptioncode=@0xbf475e44, tempEvent=true)
    at /home/maksim/kde3/kdelibs/khtml/xml/dom_nodeimpl.cpp:412
#90 0xb6376911 in DOM::NodeImpl::dispatchMouseEvent (this=0x8408a60, _mouse=0xbf475e8c, overrideId=4, overrideDetail=1)
    at /home/maksim/kde3/kdelibs/khtml/xml/dom_nodeimpl.cpp:602
#91 0xb63ad6e3 in DOM::HTMLInputElementImpl::click (this=0x8408a60)
    at /home/maksim/kde3/kdelibs/khtml/html/html_formimpl.cpp:1335
#92 0xb63ae833 in DOM::HTMLLabelElementImpl::defaultEventHandler (this=0x84088b8, evt=0x8ac8d70)
    at /home/maksim/kde3/kdelibs/khtml/html/html_formimpl.cpp:1824
#93 0xb6376372 in DOM::NodeImpl::dispatchGenericEvent (this=0x8408a60, evt=0x8ac8d70)
    at /home/maksim/kde3/kdelibs/khtml/xml/dom_nodeimpl.cpp:468
#94 0xb6376732 in DOM::NodeImpl::dispatchEvent (this=0x8408a60, evt=0x8ac8d70, exceptioncode=@0xbf475fe4, tempEvent=true)
    at /home/maksim/kde3/kdelibs/khtml/xml/dom_nodeimpl.cpp:412
#95 0xb6376911 in DOM::NodeImpl::dispatchMouseEvent (this=0x8408a60, _mouse=0xbf47602c, overrideId=4, overrideDetail=1)
    at /home/maksim/kde3/kdelibs/khtml/xml/dom_nodeimpl.cpp:602
#96 0xb63ad6e3 in DOM::HTMLInputElementImpl::click (this=0x8408a60)
    at /home/maksim/kde3/kdelibs/khtml/html/html_formimpl.cpp:1335
#97 0xb63ae833 in DOM::HTMLLabelElementImpl::defaultEventHandler (this=0x84088b8, evt=0x8ac8c58)
    at /home/maksim/kde3/kdelibs/khtml/html/html_formimpl.cpp:1824
#98 0xb6376372 in DOM::NodeImpl::dispatchGenericEvent (this=0x8408a60, evt=0x8ac8c58)
    at /home/maksim/kde3/kdelibs/khtml/xml/dom_nodeimpl.cpp:468
#99 0xb6376732 in DOM::NodeImpl::dispatchEvent (this=0x8408a60, evt=0x8ac8c58, exceptioncode=@0xbf476184, tempEvent=true)
    at /home/maksim/kde3/kdelibs/khtml/xml/dom_nodeimpl.cpp:412
#100 0xb6376911 in DOM::NodeImpl::dispatchMouseEvent (this=0x8408a60, _mouse=0xbf4761cc, overrideId=4, overrideDetail=1)
    at /home/maksim/kde3/kdelibs/khtml/xml/dom_nodeimpl.cpp:602
#101 0xb63ad6e3 in DOM::HTMLInputElementImpl::click (this=0x8408a60)
    at /home/maksim/kde3/kdelibs/khtml/html/html_formimpl.cpp:1335
#102 0xb63ae833 in DOM::HTMLLabelElementImpl::defaultEventHandler (this=0x84088b8, evt=0x8ac8b40)
Comment 3 Thiago Macieira 2005-11-11 02:49:01 UTC
Did you have to wait for the infinite loop to end? :-)
Comment 4 Allan Sandfeld 2006-06-17 23:52:30 UTC
Created attachment 16657 [details]
test case

Clickable test case
Comment 5 rapsys 2006-06-18 00:39:29 UTC
Tiago, if I don't run it in gdb, it completely crash after some time (recursion bug max exeed or something like that)

If I run it in gdb, gdb accept to trace it, but end up with using |more on the output because of the huge number of trace call to display.

ps : it's not like other time, this time the popup do you want to allow this javascript to continue didn't appear at all...
(if it happer I whould have try to let it run...)
Comment 6 Allan Sandfeld 2006-06-18 00:41:45 UTC
Created attachment 16658 [details]
Possible patch

This patch tries to solve the problem, but I need to make sure clicking on
LABEL still does what it's supposed to do in all other cases.
Comment 7 Maksim Orlovich 2006-06-18 00:51:26 UTC
*** Bug 128830 has been marked as a duplicate of this bug. ***
Comment 8 rapsys 2006-06-18 01:35:50 UTC
I see two possibility for clicking on label/input/etc :
- submit the form in GET/POST
- use xmlhttprpc(AJAX) request to send the data and rewrite the page instead of reloading everything of the page (with a return false; in javascript)

Else I don't know what you may use on it...
Comment 9 Allan Sandfeld 2006-07-18 16:28:38 UTC
SVN commit 563767 by carewolf:

Prevent infinite recursing by not calling click from a click-eventhandler.
BUG: 116092


 M  +1 -1      html_formimpl.cpp  


--- branches/KDE/3.5/kdelibs/khtml/html/html_formimpl.cpp #563766:563767
@@ -1915,7 +1915,7 @@
 	    if (formNode) {
 		getDocument()->setFocusNode(formNode);
 		if (formNode->id()==ID_INPUT)
-		    static_cast<DOM::HTMLInputElementImpl*>(formNode)->click();
+		    static_cast<DOM::HTMLInputElementImpl*>(formNode)->defaultEventHandler(evt);
 		evt->setDefaultHandled();
 	    }
 	}
Comment 10 Allan Sandfeld 2006-07-30 17:03:58 UTC
SVN commit 567892 by carewolf:

Correct the patch for #166092 so it doesn't regress #59489
CCBUG:116092
BUG:59489


 M  +2 -2      html_formimpl.cpp  


--- branches/KDE/3.5/kdelibs/khtml/html/html_formimpl.cpp #567891:567892
@@ -1917,10 +1917,10 @@
 
 	if (act) {
 	    NodeImpl* const formNode=getFormElement();
-	    if (formNode) {
+	    if (formNode && evt->target() != formNode) {
 		getDocument()->setFocusNode(formNode);
 		if (formNode->id()==ID_INPUT)
-		    static_cast<DOM::HTMLInputElementImpl*>(formNode)->defaultEventHandler(evt);
+		    static_cast<DOM::HTMLInputElementImpl*>(formNode)->click();
 		evt->setDefaultHandled();
 	    }
 	}