Bug 100863 - Crash when visiting oddcast.com page
Summary: Crash when visiting oddcast.com page
Status: RESOLVED FIXED
Alias: None
Product: konqueror
Classification: Applications
Component: nspluginviewer (show other bugs)
Version: unspecified
Platform: Compiled Sources Linux
: NOR crash
Target Milestone: ---
Assignee: George Staikos
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2005-03-05 04:43 UTC by Sean Lynch
Modified: 2005-03-15 16:34 UTC (History)
0 users

See Also:
Latest Commit:
Version Fixed In:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Sean Lynch 2005-03-05 04:43:05 UTC
Version:            (using KDE Devel)
Installed from:    Compiled sources

When going to http://host-d.oddcast.com/php/start_espn/door=121&cl=34&AID=3&id=2491051, it looks that the nsplugin crashes (as konqueror stays running) after the video intially starts to play.  The backtrace is as follows:

Using host libthread_db library "/lib/tls/libthread_db.so.1".
[Thread debugging using libthread_db enabled]
[New Thread 1105188640 (LWP 5294)]
[KCrash handler]
#7  0x40f1465e in QDataStream::writeRawBytes () from /opt/qt/lib/libqt-mt.so.3
#8  0x080595e9 in NSPluginStreamBase::process (this=0x880aff0, 
    data=@0x880b068, start=0) at nsplugin.cpp:1622
#9  0x08059760 in NSPluginStreamBase::pump (this=0x880aff0)
    at nsplugin.cpp:1649
#10 0x080599fc in NSPluginStream::data (this=0x880aff0, job=0x888fbd8, 
    data=@0xbfffd590) at nsplugin.cpp:1844
#11 0x08059af6 in NSPluginStream::qt_invoke (this=0x880aff0, _id=2, 
    _o=0xbfffd170) at qucom_p.h:312
#12 0x40c399af in QObject::activate_signal () from /opt/qt/lib/libqt-mt.so.3
#13 0x4018f299 in KIO::TransferJob::data (this=) at jobclasses.moc:972
#14 0x40190e14 in KIO::TransferJob::slotData (this=0x888fbd8, 
    _data=@0xbfffd590) at job.cpp:861
#15 0x401963ba in KIO::TransferJob::qt_invoke (this=0x888fbd8, _id=)
    at qucom_p.h:312
#16 0x40c399af in QObject::activate_signal () from /opt/qt/lib/libqt-mt.so.3
#17 0x4017dc7c in KIO::SlaveInterface::data (this=) at slaveinterface.moc:194
#18 0x40180c1b in KIO::SlaveInterface::dispatch (this=0x86af318, _cmd=100, 
    rawdata=@0xbfffd590) at slaveinterface.cpp:234
#19 0x401816fd in KIO::SlaveInterface::dispatch (this=)
    at slaveinterface.cpp:173
#20 0x4017968e in KIO::Slave::gotInput (this=) at slave.cpp:300
#21 0x4017cd1c in KIO::Slave::qt_invoke (this=) at slave.moc:113
#22 0x40c399af in QObject::activate_signal () from /opt/qt/lib/libqt-mt.so.3
#23 0x40c39ff2 in QObject::activate_signal () from /opt/qt/lib/libqt-mt.so.3
#24 0x40fb0528 in QSocketNotifier::activated () from /opt/qt/lib/libqt-mt.so.3
#25 0x40c59e31 in QSocketNotifier::event () from /opt/qt/lib/libqt-mt.so.3
#26 0x40bd07b4 in QApplication::internalNotify ()
   from /opt/qt/lib/libqt-mt.so.3
#27 0x40bd244f in QApplication::notify () from /opt/qt/lib/libqt-mt.so.3
#28 0x40758ad7 in KApplication::notify (this=0xbfffdc30, receiver=0x86adef8, 
    event=0xbfffda80) at kapplication.cpp:549
#29 0x40bc403b in QEventLoop::activateSocketNotifiers ()
   from /opt/qt/lib/libqt-mt.so.3
#30 0x08065a9f in QXtEventLoop::processEvents (this=0xbfffdd00, flags=4)
    at qxteventloop.cpp:455
#31 0x40be9f7a in QEventLoop::enterLoop () from /opt/qt/lib/libqt-mt.so.3
#32 0x40be9dd4 in QEventLoop::exec () from /opt/qt/lib/libqt-mt.so.3
#33 0x40bd2340 in QApplication::exec () from /opt/qt/lib/libqt-mt.so.3
#34 0x080650df in main (argc=3, argv=0xbfffde14) at viewer.cpp:287
Comment 1 Thiago Macieira 2005-03-05 05:14:30 UTC
No crash here.

Then again, I'm betting I have no plugin for this kind of media, whatever it is.
Comment 2 George Staikos 2005-03-07 19:20:00 UTC
Confirmed.  Can't fix yet because the "obvious" fix is also probably 
incorrect.

[KCrash handler]
#7  0x40f8b000 in QDataStream::writeRawBytes (this=0x0, 
    s=0x893e228 
"location=http%3A%2F%2Fcache-a.oddcast.com%2Fccs2%2Fcache_fs%2F4%2Fc%2F4c496c14445760da4314f20a9de3aad9&voice=2&lang=1&engine=2&text=yo  
yo  yo.      how izzz you my brother. you best be gittin out my "..., 
len=344)
    at qdatastream.cpp:1148
#8  0x080595f2 in NSPluginStreamBase::process (this=0x892e480, 
    data=@0x892e4f8, start=0) at nsplugin.cpp:1622
#9  0x08059760 in NSPluginStreamBase::pump (this=0x892e480)
    at nsplugin.cpp:1649
#10 0x080599fc in NSPluginStream::data (this=0x892e480, job=0x892fc88, 
    data=@0xbfffee10) at nsplugin.cpp:1844
#11 0x08059af6 in NSPluginStream::qt_invoke (this=0x892e480, _id=2, 
    _o=0xbfffe9e0) at qucom_p.h:312
#12 0x40cca753 in QObject::activate_signal (this=0x892fc88, clist=0x88e7408, 
    o=0xbfffe9e0) at qobject.cpp:2357
#13 0x401a0279 in KIO::TransferJob::data (this=0x892fc88, t0=0x892fc88, 
    t1=@0xbfffee10) at jobclasses.moc:972

Comment 3 George Staikos 2005-03-15 16:34:20 UTC
CVS commit by staikos: 

using the url for part of the temp filename is really not smart.
BUG: 100863


  M +7 -4      nsplugin.cpp   1.125


--- kdebase/nsplugins/viewer/nsplugin.cpp  #1.124:1.125
@@ -1552,5 +1552,5 @@ void NSPluginStreamBase::inform()
                 // stream into temporary file (use lower() in case the
                 // filename as an upper case X in it)
-                _tempFile = new KTempFile( QString::null, src.fileName().lower() );
+                _tempFile = new KTempFile;
                 _tempFile->setAutoDelete( TRUE );
                 _fileURL = _tempFile->name();
@@ -1619,6 +1619,7 @@ int NSPluginStreamBase::process( const Q
       }
 
-      if (_tempFile)
+      if (_tempFile) {
           _tempFile->dataStream()->writeRawBytes(d, sent);
+      }
 
       to_sent -= sent;
@@ -1642,6 +1643,7 @@ bool NSPluginStreamBase::pump()
         // handle AS_FILE_ONLY streams
         if ( _onlyAsFile ) {
-            if ( _tempFile )
+            if (_tempFile) {
                 _tempFile->dataStream()->writeRawBytes( _queue, _queue.size() );
+            }
             newPos = _queuePos+_queue.size();
         } else {
@@ -1707,6 +1709,7 @@ void NSPluginStreamBase::finish( bool er
     } else {
         // close temp file
-        if ( _tempFile )
+        if ( _tempFile ) {
             _tempFile->close();
+        }
 
         // destroy stream