<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<!DOCTYPE bugzilla SYSTEM "https://bugs.kde.org/page.cgi?id=bugzilla.dtd">

<bugzilla version="5.0.6"
          urlbase="https://bugs.kde.org/"
          
          maintainer="sysadmin@kde.org"
>

    <bug>
          <bug_id>139488</bug_id>
          
          <creation_ts>2007-01-02 01:59:17 +0000</creation_ts>
          <short_desc>crash when finding backwards</short_desc>
          <delta_ts>2007-01-03 18:45:13 +0000</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>2</classification_id>
          <classification>Applications</classification>
          <product>konqueror</product>
          <component>khtml</component>
          <version>unspecified</version>
          <rep_platform>Gentoo Packages</rep_platform>
          <op_sys>Linux</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>NOR</priority>
          <bug_severity>crash</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Peter Oberndorfer">kumbayo84</reporter>
          <assigned_to name="Konqueror Bugs">konqueror-bugs-null</assigned_to>
          
          
          <cf_commitlink></cf_commitlink>
          <cf_versionfixedin></cf_versionfixedin>
          <cf_sentryurl></cf_sentryurl>
          <votes>0</votes>

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>497504</commentid>
    <comment_count>0</comment_count>
    <who name="Peter Oberndorfer">kumbayo84</who>
    <bug_when>2007-01-02 01:59:17 +0000</bug_when>
    <thetext>Version:           kdelibs-3.5.5-r7 (using KDE KDE 3.5.5)
Installed from:    Gentoo Packages
OS:                Linux

open http://subsignal.org/doc/AliensBashTutorial.html in konqueror
start find as you type for &apos;&gt;&apos; (without quotes) by pressing / or whatever shortcut find as you type has
press F3 until you see this line
password: &lt;here I type &quot;mypass&quot;&gt;
press Shift F3 to search backwards
maybe alternate searching backward/forward by pressing F3/Shift-F3 a few times
konqueror now crashes

Backtrace:
Using host libthread_db library &quot;/lib/libthread_db.so.1&quot;.
[Thread debugging using libthread_db enabled]
[New Thread -1230264656 (LWP 6772)]
[KCrash handler]
#6  0xb659e47b in khtml::RenderObject::objectAbove () from /usr/kde/3.5/lib/libkhtml.so.4
#7  0xb64f2d8e in KHTMLPart::findTextNext () from /usr/kde/3.5/lib/libkhtml.so.4
#8  0xb6509a51 in KHTMLPart::slotFindPrev () from /usr/kde/3.5/lib/libkhtml.so.4
#9  0xb651496f in KHTMLPart::qt_invoke () from /usr/kde/3.5/lib/libkhtml.so.4
#10 0xb72343d9 in ?? () from /usr/qt/3/lib/libqt-mt.so.3
#11 0x09804d98 in ?? ()
#12 0x00000028 in ?? ()
#13 0xbfef59c8 in ?? ()
#14 0xb6bd812c in main_arena () from /lib/libc.so.6
#15 0xb675590c in vtable for KHTMLPart () from /usr/kde/3.5/lib/libkhtml.so.4
#16 0x00000020 in ?? ()
#17 0x0a0d0ee0 in ?? ()
#18 0xb77f7d1e in KAccelPrivate::staticMetaObject () from /usr/kde/3.5/lib/libkdecore.so.4
#19 0xb723502d in QMapPrivate&lt;int, QString&gt;::insert () from /usr/qt/3/lib/libqt-mt.so.3
#20 0x08b70170 in ?? ()
#21 0x08b703d8 in ?? ()
#22 0xbfef59c8 in ?? ()
#23 0xb7a90c1e in KAction::staticMetaObject () from /usr/kde/3.5/lib/libkdeui.so.4
#24 0xb7aa7269 in KAction::activated () from /usr/kde/3.5/lib/libkdeui.so.4
#25 0xb7ae8521 in KAction::slotActivated () from /usr/kde/3.5/lib/libkdeui.so.4
#26 0xb7bd8f7f in KAction::qt_invoke () from /usr/kde/3.5/lib/libkdeui.so.4
#27 0xb72343d9 in ?? () from /usr/qt/3/lib/libqt-mt.so.3
#28 0x08b70170 in ?? ()
#29 0x0000000f in ?? ()
#30 0xbfef5ab8 in ?? ()
#31 0xbfef5ac4 in ?? ()
#32 0xb7c3e5e8 in vtable for KAction () from /usr/kde/3.5/lib/libkdeui.so.4
#33 0xb7694d9c in vtable for QMotifStyle () from /usr/qt/3/lib/libqt-mt.so.3
#34 0x08118fe8 in ?? ()
#35 0xb74fe152 in mergeInto () from /usr/qt/3/lib/libqt-mt.so.3
#36 0x08da33a0 in ?? ()
#37 0xffffffff in ?? ()
#38 0x00000010 in ?? ()
#39 0xb7694d9c in vtable for QMotifStyle () from /usr/qt/3/lib/libqt-mt.so.3
#40 0xbfef5ab8 in ?? ()
#41 0x0a58c388 in ?? ()
#42 0xbfef5ad8 in ?? ()
#43 0xb723502d in QMapPrivate&lt;int, QString&gt;::insert () from /usr/qt/3/lib/libqt-mt.so.3
#44 0x0a58c388 in ?? ()
#45 0x0a617de0 in ?? ()
#46 0xbfef5ab8 in ?? ()
#47 0xb77f7d1e in KAccelPrivate::staticMetaObject ()
   from /usr/kde/3.5/lib/libkdecore.so.4
Backtrace stopped: previous frame inner to this frame (corrupt stack?)

(gdb) disas 0xb659e47b
Dump of assembler code for function _ZNK5khtml12RenderObject11objectAboveEv:
0xb659e470 &lt;_ZNK5khtml12RenderObject11objectAboveEv+0&gt;: push   %ebp
0xb659e471 &lt;_ZNK5khtml12RenderObject11objectAboveEv+1&gt;: mov    %esp,%ebp
0xb659e473 &lt;_ZNK5khtml12RenderObject11objectAboveEv+3&gt;: push   %edi
0xb659e474 &lt;_ZNK5khtml12RenderObject11objectAboveEv+4&gt;: push   %esi
0xb659e475 &lt;_ZNK5khtml12RenderObject11objectAboveEv+5&gt;: sub    $0x10,%esp
0xb659e478 &lt;_ZNK5khtml12RenderObject11objectAboveEv+8&gt;: mov    0x8(%ebp),%eax
0xb659e47b &lt;_ZNK5khtml12RenderObject11objectAboveEv+11&gt;:        mov    0x10(%eax),%edi &lt;----- crash here, this == 0? previousSibling()
0xb659e47e &lt;_ZNK5khtml12RenderObject11objectAboveEv+14&gt;:        test   %edi,%edi
0xb659e480 &lt;_ZNK5khtml12RenderObject11objectAboveEv+16&gt;:        je     0xb659e4ad &lt;_ZNK5khtml12RenderObject11objectAboveEv+61&gt;
0xb659e482 &lt;_ZNK5khtml12RenderObject11objectAboveEv+18&gt;:        mov    (%edi),%eax
0xb659e484 &lt;_ZNK5khtml12RenderObject11objectAboveEv+20&gt;:        mov    %edi,(%esp)
0xb659e487 &lt;_ZNK5khtml12RenderObject11objectAboveEv+23&gt;:        call   *0x1c(%eax)
0xb659e48a &lt;_ZNK5khtml12RenderObject11objectAboveEv+26&gt;:        test   %eax,%eax
0xb659e48c &lt;_ZNK5khtml12RenderObject11objectAboveEv+28&gt;:        mov    %eax,%esi
0xb659e48e &lt;_ZNK5khtml12RenderObject11objectAboveEv+30&gt;:        jne    0xb659e494 &lt;_ZNK5khtml12RenderObject11objectAboveEv+36&gt;
0xb659e490 &lt;_ZNK5khtml12RenderObject11objectAboveEv+32&gt;:        jmp    0xb659e4a4 &lt;_ZNK5khtml12RenderObject11objectAboveEv+52&gt;
0xb659e492 &lt;_ZNK5khtml12RenderObject11objectAboveEv+34&gt;:        mov    %eax,%esi
0xb659e494 &lt;_ZNK5khtml12RenderObject11objectAboveEv+36&gt;:        mov    (%esi),%eax
0xb659e496 &lt;_ZNK5khtml12RenderObject11objectAboveEv+38&gt;:        mov    %esi,(%esp)
0xb659e499 &lt;_ZNK5khtml12RenderObject11objectAboveEv+41&gt;:        call   *0x1c(%eax)
0xb659e49c &lt;_ZNK5khtml12RenderObject11objectAboveEv+44&gt;:        test   %eax,%eax
0xb659e49e &lt;_ZNK5khtml12RenderObject11objectAboveEv+46&gt;:        mov    %esi,%esi
0xb659e4a0 &lt;_ZNK5khtml12RenderObject11objectAboveEv+48&gt;:        jne    0xb659e492 &lt;_ZNK5khtml12RenderObject11objectAboveEv+34&gt;
0xb659e4a2 &lt;_ZNK5khtml12RenderObject11objectAboveEv+50&gt;:        mov    %esi,%edi
0xb659e4a4 &lt;_ZNK5khtml12RenderObject11objectAboveEv+52&gt;:        add    $0x10,%esp
0xb659e4a7 &lt;_ZNK5khtml12RenderObject11objectAboveEv+55&gt;:        mov    %edi,%eax
0xb659e4a9 &lt;_ZNK5khtml12RenderObject11objectAboveEv+57&gt;:        pop    %esi
0xb659e4aa &lt;_ZNK5khtml12RenderObject11objectAboveEv+58&gt;:        pop    %edi
0xb659e4ab &lt;_ZNK5khtml12RenderObject11objectAboveEv+59&gt;:        pop    %ebp
0xb659e4ac &lt;_ZNK5khtml12RenderObject11objectAboveEv+60&gt;:        ret
0xb659e4ad &lt;_ZNK5khtml12RenderObject11objectAboveEv+61&gt;:        mov    0xc(%eax),%edi parent()
0xb659e4b0 &lt;_ZNK5khtml12RenderObject11objectAboveEv+64&gt;:        add    $0x10,%esp
0xb659e4b3 &lt;_ZNK5khtml12RenderObject11objectAboveEv+67&gt;:        pop    %esi
0xb659e4b4 &lt;_ZNK5khtml12RenderObject11objectAboveEv+68&gt;:        mov    %edi,%eax
0xb659e4b6 &lt;_ZNK5khtml12RenderObject11objectAboveEv+70&gt;:        pop    %edi
0xb659e4b7 &lt;_ZNK5khtml12RenderObject11objectAboveEv+71&gt;:        pop    %ebp
0xb659e4b8 &lt;_ZNK5khtml12RenderObject11objectAboveEv+72&gt;:        ret
End of assembler dump.

It looks like this is NULL.
Which looks reasonable, when looking at the caller
khtml_part.cpp:3112 khtml::RenderObject* obj = d-&gt;m_findNode ? d-&gt;m_findNode-&gt;renderer() : 0;
...
obj = (options &amp; KFindDialog::FindBackwards) ? obj-&gt;objectAbove() : obj-&gt;objectBelow();</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>497906</commentid>
    <comment_count>1</comment_count>
    <who name="Martin Koller">martin</who>
    <bug_when>2007-01-03 18:40:05 +0000</bug_when>
    <thetext>I can easily reproduce this with any page (current SVN head):
start find for seomething, Press F3, Shift F3, F3, Shift F3 -&gt; crash</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>497909</commentid>
    <comment_count>2</comment_count>
    <who name="Martin Koller">martin</who>
    <bug_when>2007-01-03 18:45:13 +0000</bug_when>
    <thetext>SVN commit 619552 by mkoller:

BUG: 139488

Avoid 0-pointer deref


 M  +1 -1      khtml_part.cpp  


--- branches/KDE/3.5/kdelibs/khtml/khtml_part.cpp #619551:619552
@@ -3119,7 +3119,7 @@
     khtml::RenderObject* end = d-&gt;m_findNodeEnd ? d-&gt;m_findNodeEnd-&gt;renderer() : 0;
     if ( obj == end )
       obj = 0L;
-    else
+    else if ( obj )
     {
       do {
         obj = (options &amp; KFindDialog::FindBackwards) ? obj-&gt;objectAbove() : obj-&gt;objectBelow();
</thetext>
  </long_desc>
      
      

    </bug>

</bugzilla>