Reviewed by Ken.
authorsullivan <sullivan@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Sun, 10 Oct 2004 15:14:31 +0000 (15:14 +0000)
committersullivan <sullivan@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Sun, 10 Oct 2004 15:14:31 +0000 (15:14 +0000)
        - fixed <rdar://problem/3777253> Crash in redirect mechanism trying to display error page for bad scheme

        * WebView.subproj/WebMainResourceClient.m:
        (-[WebMainResourceClient connection:willSendRequest:redirectResponse:]):
        add retain/autorelease to the request returned from call to super. In this case, the return value
        was being dealloc'ed before being returned.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@7803 268f45cc-cd09-0410-ab3c-d52691b4dbfc

WebKit/ChangeLog
WebKit/WebView.subproj/WebMainResourceClient.m
WebKit/WebView.subproj/WebMainResourceLoader.m

index 9ae036f1011521cbec7f6a4fd1cee87225491218..2146b5de35a2a8b7e94f4f8f1c18072033c3756f 100644 (file)
@@ -1,3 +1,14 @@
+2004-10-10  John Sullivan  <sullivan@apple.com>
+
+        Reviewed by Ken.
+        
+        - fixed <rdar://problem/3777253> Crash in redirect mechanism trying to display error page for bad scheme
+
+        * WebView.subproj/WebMainResourceClient.m:
+        (-[WebMainResourceClient connection:willSendRequest:redirectResponse:]):
+        add retain/autorelease to the request returned from call to super. In this case, the return value
+        was being dealloc'ed before being returned.
+
 2004-10-09  Chris Blumenberg  <cblu@apple.com>
 
        Fixed: 
@@ -22,6 +33,7 @@
         * WebView.subproj/WebHTMLView.m:
         (-[WebHTMLView scrollWheel:]): call the bridge to scroll, if that fails, pass to next responder
 
+>>>>>>> 1.2810
 === Safari-166 ===
 
 2004-10-05  Chris Blumenberg  <cblu@apple.com>
index a8d3fcdab3867da05cfaae9ee0646cb02c7f713b..cc70966880e39727e8e8bafefdfbd9cb5fd94a41 100644 (file)
         newRequest = [mutableRequest autorelease];
     }
 
-    // note super will make a copy for us, so reassigning newRequest is important
-    newRequest = [super connection:con willSendRequest:newRequest redirectResponse:redirectResponse];
+    // Note super will make a copy for us, so reassigning newRequest is important. Since we are returning this value, but
+    // it's only guaranteed to be retained by self, and self might be dealloc'ed in this method, we have to autorelease.
+    // See 3777253 for an example.
+    newRequest = [[[super connection:con willSendRequest:newRequest redirectResponse:redirectResponse] retain] autorelease];
 
     // Don't set this on the first request.  It is set
     // when the main load was started.
index a8d3fcdab3867da05cfaae9ee0646cb02c7f713b..cc70966880e39727e8e8bafefdfbd9cb5fd94a41 100644 (file)
         newRequest = [mutableRequest autorelease];
     }
 
-    // note super will make a copy for us, so reassigning newRequest is important
-    newRequest = [super connection:con willSendRequest:newRequest redirectResponse:redirectResponse];
+    // Note super will make a copy for us, so reassigning newRequest is important. Since we are returning this value, but
+    // it's only guaranteed to be retained by self, and self might be dealloc'ed in this method, we have to autorelease.
+    // See 3777253 for an example.
+    newRequest = [[[super connection:con willSendRequest:newRequest redirectResponse:redirectResponse] retain] autorelease];
 
     // Don't set this on the first request.  It is set
     // when the main load was started.