Summary: | Opening a specific url crashes Rekonq | ||
---|---|---|---|
Product: | [Unmaintained] rekonq | Reporter: | Blackpaw <lindsay.mathieson> |
Component: | general | Assignee: | Andrea Diamantini <adjam7> |
Status: | RESOLVED FIXED | ||
Severity: | crash | CC: | adawit, benjamin.poulain |
Priority: | NOR | ||
Version: | latest git snapshot | ||
Target Milestone: | --- | ||
Platform: | Compiled Sources | ||
OS: | Linux | ||
Latest Commit: | Version Fixed In: | ||
Sentry Crash Report: |
Description
Blackpaw
2010-08-27 23:17:40 UTC
It crashes here too with rekonq and konqi webkitpart. But NOT with arora :( KIO related? Dawit? It looks like a bug in KIO. What happens is that WebKit creates a request with the operation QNetworkAccessManager::CustomOperation (this is necessary to support OPTIONS, see https://bugs.webkit.org/show_bug.cgi?id=34647 ). Since Rekonq does not handle that case, it is passed to KIO: reply = AccessManager::createRequest(op, req, outgoingData); Which return 0. We get a segfault when this reply is used by WebKit. For the KIO devs, note that QNetworkAccessManager::sendCustomRequest() and QNetworkAccessManager::CustomOperation are new in Qt 4.7: http://doc.qt.nokia.com/4.7-snapshot/qnetworkaccessmanager.html#sendCustomRequest commit a3e57d0dfb6cbc45e8039820ecf8a4d8c90aa6ac Author: Andrea Diamantini <adjam7@gmail.com> Date: Tue Aug 31 12:02:27 2010 +0200 This works as wrokaround for KIO missing implementation in DELETE & CUSTOM access manager operations It will be removed when we'll implement it in the right place. BUG: 249275 diff --git a/src/networkaccessmanager.cpp b/src/networkaccessmanager.cpp index 9d9d052..f746087 100644 --- a/src/networkaccessmanager.cpp +++ b/src/networkaccessmanager.cpp @@ -104,16 +104,17 @@ QNetworkReply *NetworkAccessManager::createRequest(QNetworkAccessManager::Operat break; case QNetworkAccessManager::DeleteOperation: + kDebug() << "DELETE OPERATION..."; + reply = QNetworkAccessManager::createRequest(op, req, outgoingData); + if(!reply) + kDebug() << "OOOOOOOOOOOOOOOOOOO DELETE REPLY NULL"; break; case QNetworkAccessManager::CustomOperation: -/* { - kDebug() << "CUSTOM OPERATION..."; - QByteArray verb("*"); - reply = sendCustomRequest(req, verb, outgoingData); - } + kDebug() << "CUSTOM OPERATION..."; + reply = QNetworkAccessManager::createRequest(op, req, outgoingData); if(!reply) - kDebug() << "OOOOOOOOOOOOOOOOOOO CUSTOM REPLY NULL";*/ + kDebug() << "OOOOOOOOOOOOOOOOOOO CUSTOM REPLY NULL"; break; default: Works now for me - thanks! |