aboutsummaryrefslogtreecommitdiffstats
path: root/www/seamonkey/files/patch-security_fix
blob: 0642799d078404de6116e57d799bae22a794f059 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
Index: uriloader/base/nsDocLoader.cpp
===================================================================
RCS file: /cvsroot/mozilla/uriloader/base/nsDocLoader.cpp,v
retrieving revision 3.251
diff -u -r3.251 nsDocLoader.cpp
--- uriloader/base/nsDocLoader.cpp  17 Apr 2002 03:48:37 -0000  3.251
+++ uriloader/base/nsDocLoader.cpp  30 Apr 2002 19:02:19 -0000
@@ -1263,6 +1263,7 @@
     rv = aNewChannel->GetURI(getter_AddRefs(newURI));
     if (NS_FAILED(rv)) return rv;
 
+#ifdef HTTP_DOESNT_CALL_CHECKLOADURI
     // verify that this is a legal redirect
     nsCOMPtr<nsIScriptSecurityManager> securityManager = 
              do_GetService(NS_SCRIPTSECURITYMANAGER_CONTRACTID, &rv);
@@ -1270,6 +1271,7 @@
     rv = securityManager->CheckLoadURI(oldURI, newURI,
                                        nsIScriptSecurityManager::DISALLOW_FROM_MAIL);
     if (NS_FAILED(rv)) return rv;
+#endif
 
     nsLoadFlags loadFlags = 0;
     PRInt32 stateFlags = nsIWebProgressListener::STATE_REDIRECTING |
Index: netwerk/protocol/http/src/Makefile.in
===================================================================
RCS file: /cvsroot/mozilla/netwerk/protocol/http/src/Makefile.in,v
retrieving revision 1.56
diff -u -r1.56 Makefile.in
--- netwerk/protocol/http/src/Makefile.in   19 Apr 2002 22:25:18 -0000  1.56
+++ netwerk/protocol/http/src/Makefile.in   30 Apr 2002 19:02:19 -0000
@@ -36,6 +36,8 @@
          intl \
          exthandler \
          caps \
+         xpconnect \
+         js \
          $(NULL)
 
 CPPSRCS        = \
Index: netwerk/protocol/http/src/nsHttpChannel.cpp
===================================================================
RCS file: /cvsroot/mozilla/netwerk/protocol/http/src/nsHttpChannel.cpp,v
retrieving revision 1.114
diff -u -r1.114 nsHttpChannel.cpp
--- netwerk/protocol/http/src/nsHttpChannel.cpp 26 Apr 2002 22:50:50 -0000  1.114
+++ netwerk/protocol/http/src/nsHttpChannel.cpp 30 Apr 2002 19:02:19 -0000
@@ -34,6 +34,7 @@
 #include "nsISupportsPrimitives.h"
 #include "nsIURL.h"
 #include "nsIMIMEService.h"
+#include "nsIScriptSecurityManager.h"
 #include "nsCExternalHandlerService.h"
 #include "nsMimeTypes.h"
 #include "nsNetUtil.h"
@@ -1465,6 +1466,15 @@
         rv = ioService->NewURI(nsDependentCString(location), nsnull, mURI,
                                getter_AddRefs(newURI));
         if (NS_FAILED(rv)) return rv;
+
+        // verify that this is a legal redirect
+        nsCOMPtr<nsIScriptSecurityManager> securityManager = 
+                 do_GetService(NS_SCRIPTSECURITYMANAGER_CONTRACTID);
+        if (securityManager) {
+            rv = securityManager->CheckLoadURI(mURI, newURI,
+                                               nsIScriptSecurityManager::DISALLOW_FROM_MAIL);
+            if (NS_FAILED(rv)) return rv;
+        }
 
         // Kill the current cache entry if we are redirecting
         // back to ourself.
--- htmlparser/src/CNavDTD.cpp.orig Sat May  4 00:32:17 2002
+++ htmlparser/src/CNavDTD.cpp  Sat May  4 01:14:59 2002
@@ -473,14 +473,14 @@
 
   nsresult result = NS_OK;
 
-  if (aTokenizer && mSink && aParser) {
+  if (aTokenizer && aParser) {
     nsITokenizer*  oldTokenizer = mTokenizer;
 
     mTokenizer      = aTokenizer;
     mParser         = (nsParser*)aParser;
     mTokenAllocator = mTokenizer->GetTokenAllocator();
     
-
+    if (mSink) {
     if (mBodyContext->GetCount() == 0) {
       CStartToken* theToken=nsnull;
       if(ePlainText==mDocType) {
@@ -537,6 +537,7 @@
       }
     }//while
     mTokenizer = oldTokenizer;
+    }
   }
 
   return result;