Summary: | kio data crashes applications (but not Konqueror) | ||
---|---|---|---|
Product: | [Frameworks and Libraries] kio | Reporter: | Jonathan Riddell <jr> |
Component: | general | Assignee: | Leo Savernik <l.savernik> |
Status: | RESOLVED WORKSFORME | ||
Severity: | crash | CC: | andresbajotierra, thiago, wbsoft, zahl |
Priority: | NOR | ||
Version: | unspecified | ||
Target Milestone: | --- | ||
Platform: | Compiled Sources | ||
OS: | Linux | ||
Latest Commit: | Version Fixed In: |
Description
Jonathan Riddell
2004-12-19 22:38:21 UTC
Can't reproduce. Does it still crash if you use the correct syntax? data:text/html, bla (note the comma instead of the semicolon) Yes it does. I've done cvs update on kdelibs/kio and it still crashes. Anecdotally on #kde-devel one person had it crash, another didn't. Here's what I gathered: with the URL "data:text/html,abc": - Typing it in Konqueror's location bar works - Selecting Open with KWrite on Konqueror's Location menu afterwards works - Running "kate data:text/html,abc" works But: - File, Open on Kate, typing the URL crashes The same symptoms can be observed with KWrite, KEdit, KHexEdit, KGhostView, KPDF, ... basically every KDE app, except those from KOffice. Those crash even with the command-line name. No crash inside valgrind, but got something interesting: ==214642== Invalid read of size 4 ==214642== at 0x1BB9689A: KIO::StatJob::start(KIO::Slave*) (qobject.h:227) ==214642== by 0x1BB767BD: KIO::Scheduler::startJobDirect() (/home/thiago/programs/src/kde/kdelibs/kio/kio/scheduler.cpp:446) ==214642== by 0x1BB76C0B: KIO::Scheduler::startStep() (/home/thiago/programs/src/kde/kdelibs/kio/kio/scheduler.cpp:273) ==214642== by 0x1BB76D47: KIO::Scheduler::qt_invoke(int, QUObject*) (./kio/kio/scheduler.moc:161) ==214642== Address 0x1DA19D74 is 108 bytes inside a block of size 268 free'd ==214642== at 0x1B90813F: operator delete(void*) (in /usr/lib/valgrind/vgpreload_memcheck.so) ==214642== by 0x1BB9DA9F: KIO::StatJob::~StatJob() (job.cpp:4570) ==214642== by 0x1BB7F1E7: KIO::Job::emitResult() (job.cpp:218) ==214642== by 0x1BB81C6B: KIO::SimpleJob::slotFinished() (job.cpp:536) ==214642== ==214642== Invalid read of size 4 ==214642== at 0x1C71901C: QObject::connect(QObject const*, char const*, QObject const*, char const*) (in /home/thiago/programs/src/kde/qt-copy/lib/libqt-mt.so.3.3.3) ==214642== by 0x1BB968BF: KIO::StatJob::start(KIO::Slave*) (qobject.h:227) ==214642== by 0x1BB767BD: KIO::Scheduler::startJobDirect() (/home/thiago/programs/src/kde/kdelibs/kio/kio/scheduler.cpp:446) ==214642== by 0x1BB76C0B: KIO::Scheduler::startStep() (/home/thiago/programs/src/kde/kdelibs/kio/kio/scheduler.cpp:273) ==214642== Address 0x1DA19D08 is 0 bytes inside a block of size 268 free'd ==214642== at 0x1B90813F: operator delete(void*) (in /usr/lib/valgrind/vgpreload_memcheck.so) ==214642== by 0x1BB9DA9F: KIO::StatJob::~StatJob() (job.cpp:4570) ==214642== by 0x1BB7F1E7: KIO::Job::emitResult() (job.cpp:218) ==214642== by 0x1BB81C6B: KIO::SimpleJob::slotFinished() (job.cpp:536) ==214642== ==214642== Invalid read of size 4 ==214642== at 0x1C7190F8: QObject::connect(QObject const*, char const*, QObject const*, char const*) (in /home/thiago/programs/src/kde/qt-copy/lib/libqt-mt.so.3.3.3) ==214642== by 0x1BB968E5: KIO::StatJob::start(KIO::Slave*) (qobject.h:227) ==214642== by 0x1BB767BD: KIO::Scheduler::startJobDirect() (/home/thiago/programs/src/kde/kdelibs/kio/kio/scheduler.cpp:446) ==214642== by 0x1BB76C0B: KIO::Scheduler::startStep() (/home/thiago/programs/src/kde/kdelibs/kio/kio/scheduler.cpp:273) ==214642== Address 0x1DA19D08 is 0 bytes inside a block of size 268 free'd ==214642== at 0x1B90813F: operator delete(void*) (in /usr/lib/valgrind/vgpreload_memcheck.so) ==214642== by 0x1BB9DA9F: KIO::StatJob::~StatJob() (job.cpp:4570) ==214642== by 0x1BB7F1E7: KIO::Job::emitResult() (job.cpp:218) ==214642== by 0x1BB81C6B: KIO::SimpleJob::slotFinished() (job.cpp:536) ==214642== ==214642== Invalid read of size 4 ==214642== at 0x1C716A1B: err_member_notfound(int, QObject const*, char const*, char const*) (in /home/thiago/programs/src/kde/qt-copy/lib/libqt-mt.so.3.3.3) ==214642== by 0x1C71912F: QObject::connect(QObject const*, char const*, QObject const*, char const*) (in /home/thiago/programs/src/kde/qt-copy/lib/libqt-mt.so.3.3.3) ==214642== by 0x1BB968E5: KIO::StatJob::start(KIO::Slave*) (qobject.h:227) ==214642== by 0x1BB767BD: KIO::Scheduler::startJobDirect() (/home/thiago/programs/src/kde/kdelibs/kio/kio/scheduler.cpp:446) ==214642== Address 0x1DA19D08 is 0 bytes inside a block of size 268 free'd ==214642== at 0x1B90813F: operator delete(void*) (in /usr/lib/valgrind/vgpreload_memcheck.so) ==214642== by 0x1BB9DA9F: KIO::StatJob::~StatJob() (job.cpp:4570) ==214642== by 0x1BB7F1E7: KIO::Job::emitResult() (job.cpp:218) ==214642== by 0x1BB81C6B: KIO::SimpleJob::slotFinished() (job.cpp:536) ==214642== ==214642== Invalid read of size 4 ==214642== at 0x1C71666A: QObject::name() const (in /home/thiago/programs/src/kde/qt-copy/lib/libqt-mt.so.3.3.3) ==214642== by 0x1C716AC9: err_info_about_objects(char const*, QObject const*, QObject const*) (in /home/thiago/programs/src/kde/qt-copy/lib/libqt-mt.so.3.3.3) ==214642== by 0x1C719154: QObject::connect(QObject const*, char const*, QObject const*, char const*) (in /home/thiago/programs/src/kde/qt-copy/lib/libqt-mt.so.3.3.3) ==214642== by 0x1BB968E5: KIO::StatJob::start(KIO::Slave*) (qobject.h:227) ==214642== Address 0x1DA19D10 is 8 bytes inside a block of size 268 free'd ==214642== at 0x1B90813F: operator delete(void*) (in /usr/lib/valgrind/vgpreload_memcheck.so) ==214642== by 0x1BB9DA9F: KIO::StatJob::~StatJob() (job.cpp:4570) ==214642== by 0x1BB7F1E7: KIO::Job::emitResult() (job.cpp:218) ==214642== by 0x1BB81C6B: KIO::SimpleJob::slotFinished() (job.cpp:536) I started up KDE, opened KWrite. Then I opened the file picker and entered data:text/html, lala and got an error dialog running: "The given file could not be read, check if it exists or if it is readable for the current user." I'll update kio to check if the cause for the crash has been introduced recently. Still an issue. Recently David Faure has commited a fix to prevent premature deletion of a kio_data job. Can you check whether this bug has been fixed by it? Checking... still crashing. 3.4.0 rc1 (20050225) CVS commit by pletourn: Don't crash if the slave emits an error inside SimpleJob::start() (this will delete the job) CCBUG:95488 I guess DataSlave needs to implement 'stat' to make it work M +5 -5 job.cpp 1.431.2.2 --- kdelibs/kio/kio/job.cpp #1.431.2.1:1.431.2.2 @@ -626,8 +626,8 @@ MkdirJob::MkdirJob( const KURL& url, int void MkdirJob::start(Slave *slave) { - SimpleJob::start(slave); - connect( slave, SIGNAL( redirection(const KURL &) ), SLOT( slotRedirection(const KURL &) ) ); + + SimpleJob::start(slave); } @@ -753,10 +753,10 @@ void StatJob::start(Slave *slave) m_outgoingMetaData.replace( "details", QString::number(m_details) ); - SimpleJob::start(slave); - - connect( m_slave, SIGNAL( statEntry( const KIO::UDSEntry& ) ), + connect( slave, SIGNAL( statEntry( const KIO::UDSEntry& ) ), SLOT( slotStatEntry( const KIO::UDSEntry & ) ) ); connect( slave, SIGNAL( redirection(const KURL &) ), SLOT( slotRedirection(const KURL &) ) ); + + SimpleJob::start(slave); } It seems that now the data: URL is not recognised anymore and Kate tries to load by file: which of course fails. No, Nicolas, that looks like a kfile bug instead. I can still open data: URIs in Konqueror and in KWrite by Location | Open in KWrite (from Konqueror) and via the command-line *** Bug 92408 has been marked as a duplicate of this bug. *** Bug 115218 says Konqueror crashes too. Just test to update status: Here using: Qt: 4.5.1 (qt-copy 971295) KDE: 4.2.88 (KDE 4.2.88 (KDE 4.3 >= 20090527)) kdelibs svn rev. 975695 / kdebase svn rev. 975695 on ArchLinux i686 - Kernel 2.6.29.4 - Opening Konqueror, browse "data:text/html,foobar" WORKS - Launching Konqueror from shell as "konqueror data:text/html,foobar" WORKS - Opening KWrite, open the Open File dialog browser and entering "data:text/html,foobar" only shows an error about that string not being a file, the "foobar" text do not appear but the application do not crash neither. - Launching KWrite from shell as "kwrite data:text/html,foobar" WORKS and the text is shown. - Launching Dolphin from shell as "dolphin data:text/html,foobar" opens Dolphin and shows an error "Protocol not handled, launching Konqueror". Konqueror is shown with the foobar message on it. So.. no crashes... Should this be closed, can anyone else confirm this ? Thanks Also, Gwenview (kdegraphics svnrev. 975699) do not crash when launching "gwenview data:image/png,hello", it doesn't show anything but a loading image. Am Sonntag, 31. Mai 2009 schrieb Dario Andres:
> So.. no crashes...
If the crash is gone, it should be closed.
Verified by request. :) |