diff options
Diffstat (limited to 'net')
-rw-r--r-- | net/ocsp/nss_ocsp.cc | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/net/ocsp/nss_ocsp.cc b/net/ocsp/nss_ocsp.cc index adea79a..02edd05 100644 --- a/net/ocsp/nss_ocsp.cc +++ b/net/ocsp/nss_ocsp.cc @@ -248,6 +248,19 @@ class OCSPRequestSession return data_; } + virtual void OnReceivedRedirect(net::URLRequest* request, + const GURL& new_url, + bool* defer_redirect) { + DCHECK_EQ(request, request_); + DCHECK_EQ(MessageLoopForIO::current(), io_loop_); + + if (!new_url.SchemeIs("http")) { + // Prevent redirects to non-HTTP schemes, including HTTPS. This matches + // the initial check in OCSPServerSession::CreateRequest(). + CancelURLRequest(); + } + } + virtual void OnResponseStarted(net::URLRequest* request) { DCHECK_EQ(request, request_); DCHECK_EQ(MessageLoopForIO::current(), io_loop_); |