Reviewed by Maciej (a while back).
authordarin <darin@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Sat, 19 Mar 2005 19:34:56 +0000 (19:34 +0000)
committerdarin <darin@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Sat, 19 Mar 2005 19:34:56 +0000 (19:34 +0000)
        - fixed <rdar://problem/4059323> local-file security check is allowing plug-in streams, but must not

        * Plugins.subproj/WebNetscapePluginStream.m:
        (-[WebNetscapePluginStream initWithRequest:pluginPointer:notifyData:sendNotification:]):
        Roll out change I made on 3-13. That change is needed for subresource, but not for plug-in streams.
        For plug-in streams it's too risky, and leaves a serious security hole open.

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

WebKit/ChangeLog
WebKit/Plugins.subproj/WebNetscapePluginStream.m

index 06095b093f594b562ce722048173c1cd76e8cbd1..476e96ae1491f0940e6b8a9ee1b112bd32d0b489 100644 (file)
@@ -1,3 +1,14 @@
+2005-03-19  Darin Adler  <darin@apple.com>
+
+        Reviewed by Maciej (a while back).
+
+        - fixed <rdar://problem/4059323> local-file security check is allowing plug-in streams, but must not
+
+        * Plugins.subproj/WebNetscapePluginStream.m:
+        (-[WebNetscapePluginStream initWithRequest:pluginPointer:notifyData:sendNotification:]):
+        Roll out change I made on 3-13. That change is needed for subresource, but not for plug-in streams.
+        For plug-in streams it's too risky, and leaves a serious security hole open.
+
 2005-03-19  Darin Adler  <darin@apple.com>
 
         Reviewed by Ken and John.
index 90123f0682338a500ac23c9378e7e54a2433f0fe..3072c6d1f645f0a2f71b7b4dc14d9046e2742534 100644 (file)
     WebBaseNetscapePluginView *view = (WebBaseNetscapePluginView *)thePluginPointer->ndata;
 
     WebBridge *bridge = [[view webFrame] _bridge];
-
-    // Since this is a subresource, we can load any URL (we ignore the return value).
-    // But we still want to know whether we should hide the referrer or not, so we call the canLoadURL method.
     BOOL hideReferrer;
-    [bridge canLoadURL:[theRequest URL] fromReferrer:[bridge referrer] hideReferrer:&hideReferrer];
+    if (![bridge canLoadURL:[theRequest URL] fromReferrer:[bridge referrer] hideReferrer:&hideReferrer])
+        return nil;
 
     if ([self initWithRequestURL:[theRequest URL]
                     pluginPointer:thePluginPointer