Bug 249275 - Opening a specific url crashes Rekonq
Summary: Opening a specific url crashes Rekonq
Status: RESOLVED FIXED
Alias: None
Product: rekonq
Classification: Applications
Component: general (show other bugs)
Version: latest git snapshot
Platform: Compiled Sources Linux
: NOR crash
Target Milestone: ---
Assignee: Andrea Diamantini
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2010-08-27 23:17 UTC by Blackpaw
Modified: 2010-08-31 13:28 UTC (History)
2 users (show)

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 Blackpaw 2010-08-27 23:17:40 UTC
Version:           latest git snapshot (using KDE 4.5.0) 
OS:                Linux

Opening http://www.sfx.co.uk/2010/08/26/from-the-sfx-office-25/ crashes rekonq

Konqueror (khtml) and firefox can open it. Konqueror (kwebkitpart) also crashes.

Reproducible: Always

Steps to Reproduce:
Open http://www.sfx.co.uk/2010/08/26/from-the-sfx-office-25/

Actual Results:  
Rekonq Crashes

Expected Results:  
Rekonq should display the page

OS: Linux (i686) release 2.6.35-19-generic
Compiler: cc
Comment 1 Andrea Diamantini 2010-08-28 21:31:39 UTC
It crashes here too with rekonq and konqi webkitpart. But NOT with arora :(
KIO related? Dawit?
Comment 2 Benjamin Poulain 2010-08-30 16:06:35 UTC
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.
Comment 3 Benjamin Poulain 2010-08-30 21:28:50 UTC
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
Comment 4 Andrea Diamantini 2010-08-31 12:05:55 UTC
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:
Comment 5 Blackpaw 2010-08-31 13:28:19 UTC
Works now for me - thanks!