mirror of
https://github.com/mozilla/gecko-dev.git
synced 2024-11-28 15:23:51 +00:00
Backed out changeset 55df21f1b7d6 (bug 1566342) for causing build bustages on FuzzyLayer.cpp. CLOSED TREE
This commit is contained in:
parent
89547a4af6
commit
62a26df9c6
@ -5,9 +5,6 @@
|
||||
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
|
||||
|
||||
#include "FuzzyLayer.h"
|
||||
#include "nsIRunnable.h"
|
||||
#include "nsThreadUtils.h"
|
||||
|
||||
#include "prmem.h"
|
||||
#include "prio.h"
|
||||
#include "mozilla/Logging.h"
|
||||
@ -188,7 +185,7 @@ nsresult AttachFuzzyIOLayer(PRFileDesc* fd) {
|
||||
return NS_ERROR_FAILURE;
|
||||
}
|
||||
|
||||
PRStatus status = PR_PushIOLayer(fd, PR_TOP_IO_LAYER, layer);
|
||||
PRStatus status = PR_PushIOLayer(fd, PR_NSPR_IO_LAYER, layer);
|
||||
|
||||
if (status == PR_FAILURE) {
|
||||
PR_Free(layer); // PR_CreateIOLayerStub() uses PR_Malloc().
|
||||
|
@ -8,8 +8,6 @@
|
||||
#define FuzzyLayer_h__
|
||||
|
||||
#include "prerror.h"
|
||||
#include "nsError.h"
|
||||
#include "nsIFile.h"
|
||||
|
||||
namespace mozilla {
|
||||
namespace net {
|
||||
|
@ -1,327 +0,0 @@
|
||||
/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
|
||||
/* vim:set ts=2 sw=2 sts=2 et cindent: */
|
||||
/* This Source Code Form is subject to the terms of the Mozilla Public
|
||||
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
|
||||
|
||||
#include "FuzzySecurityInfo.h"
|
||||
#include "mozilla/Logging.h"
|
||||
#include "mozilla/OriginAttributes.h"
|
||||
#include "nsThreadManager.h"
|
||||
|
||||
namespace mozilla {
|
||||
namespace net {
|
||||
|
||||
FuzzySecurityInfo::FuzzySecurityInfo() {}
|
||||
|
||||
FuzzySecurityInfo::~FuzzySecurityInfo() {}
|
||||
|
||||
NS_IMPL_ISUPPORTS(FuzzySecurityInfo, nsITransportSecurityInfo,
|
||||
nsIInterfaceRequestor, nsISSLSocketControl)
|
||||
|
||||
NS_IMETHODIMP
|
||||
FuzzySecurityInfo::GetErrorCode(int32_t* state) {
|
||||
*state = 0;
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
NS_IMETHODIMP
|
||||
FuzzySecurityInfo::GetSecurityState(uint32_t* state) {
|
||||
*state = 0;
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
NS_IMETHODIMP
|
||||
FuzzySecurityInfo::GetErrorCodeString(nsAString& aErrorString) {
|
||||
MOZ_CRASH("Unused");
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
NS_IMETHODIMP
|
||||
FuzzySecurityInfo::GetFailedCertChain(nsIX509CertList** _result) {
|
||||
MOZ_CRASH("Unused");
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
NS_IMETHODIMP
|
||||
FuzzySecurityInfo::GetServerCert(nsIX509Cert** aServerCert) {
|
||||
NS_ENSURE_ARG_POINTER(aServerCert);
|
||||
// This method is called by nsHttpChannel::ProcessSSLInformation()
|
||||
// in order to display certain information in the console.
|
||||
// Returning NULL is okay here and handled by the caller.
|
||||
*aServerCert = NULL;
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
NS_IMETHODIMP
|
||||
FuzzySecurityInfo::GetSucceededCertChain(nsIX509CertList** _result) {
|
||||
NS_ENSURE_ARG_POINTER(_result);
|
||||
MOZ_CRASH("Unused");
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
NS_IMETHODIMP
|
||||
FuzzySecurityInfo::GetCipherName(nsACString& aCipherName) {
|
||||
MOZ_CRASH("Unused");
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
NS_IMETHODIMP
|
||||
FuzzySecurityInfo::GetKeyLength(uint32_t* aKeyLength) {
|
||||
MOZ_CRASH("Unused");
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
NS_IMETHODIMP
|
||||
FuzzySecurityInfo::GetSecretKeyLength(uint32_t* aSecretKeyLength) {
|
||||
MOZ_CRASH("Unused");
|
||||
*aSecretKeyLength = 4096;
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
NS_IMETHODIMP
|
||||
FuzzySecurityInfo::GetKeaGroupName(nsACString& aKeaGroup) {
|
||||
MOZ_CRASH("Unused");
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
NS_IMETHODIMP
|
||||
FuzzySecurityInfo::GetSignatureSchemeName(nsACString& aSignatureScheme) {
|
||||
MOZ_CRASH("Unused");
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
NS_IMETHODIMP
|
||||
FuzzySecurityInfo::GetProtocolVersion(uint16_t* aProtocolVersion) {
|
||||
NS_ENSURE_ARG_POINTER(aProtocolVersion);
|
||||
// Must be >= TLS 1.2 for HTTP2
|
||||
*aProtocolVersion = nsITransportSecurityInfo::TLS_VERSION_1_2;
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
NS_IMETHODIMP
|
||||
FuzzySecurityInfo::GetCertificateTransparencyStatus(
|
||||
uint16_t* aCertificateTransparencyStatus) {
|
||||
NS_ENSURE_ARG_POINTER(aCertificateTransparencyStatus);
|
||||
MOZ_CRASH("Unused");
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
NS_IMETHODIMP
|
||||
FuzzySecurityInfo::GetIsDomainMismatch(bool* aIsDomainMismatch) {
|
||||
NS_ENSURE_ARG_POINTER(aIsDomainMismatch);
|
||||
*aIsDomainMismatch = false;
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
NS_IMETHODIMP
|
||||
FuzzySecurityInfo::GetIsNotValidAtThisTime(bool* aIsNotValidAtThisTime) {
|
||||
NS_ENSURE_ARG_POINTER(aIsNotValidAtThisTime);
|
||||
*aIsNotValidAtThisTime = false;
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
NS_IMETHODIMP
|
||||
FuzzySecurityInfo::GetIsUntrusted(bool* aIsUntrusted) {
|
||||
NS_ENSURE_ARG_POINTER(aIsUntrusted);
|
||||
*aIsUntrusted = false;
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
NS_IMETHODIMP
|
||||
FuzzySecurityInfo::GetIsExtendedValidation(bool* aIsEV) {
|
||||
NS_ENSURE_ARG_POINTER(aIsEV);
|
||||
*aIsEV = true;
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
NS_IMETHODIMP
|
||||
FuzzySecurityInfo::GetInterface(const nsIID& uuid, void** result) {
|
||||
if (!NS_IsMainThread()) {
|
||||
MOZ_CRASH("FuzzySecurityInfo::GetInterface called off the main thread");
|
||||
return NS_ERROR_NOT_SAME_THREAD;
|
||||
}
|
||||
|
||||
nsresult rv = NS_ERROR_NO_INTERFACE;
|
||||
if (mCallbacks) {
|
||||
rv = mCallbacks->GetInterface(uuid, result);
|
||||
}
|
||||
return rv;
|
||||
}
|
||||
|
||||
NS_IMETHODIMP
|
||||
FuzzySecurityInfo::GetNotificationCallbacks(
|
||||
nsIInterfaceRequestor** aCallbacks) {
|
||||
nsCOMPtr<nsIInterfaceRequestor> ir(mCallbacks);
|
||||
ir.forget(aCallbacks);
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
NS_IMETHODIMP
|
||||
FuzzySecurityInfo::SetNotificationCallbacks(nsIInterfaceRequestor* aCallbacks) {
|
||||
mCallbacks = aCallbacks;
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
NS_IMETHODIMP
|
||||
FuzzySecurityInfo::GetProviderFlags(uint32_t* aProviderFlags) {
|
||||
MOZ_CRASH("Unused");
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
NS_IMETHODIMP
|
||||
FuzzySecurityInfo::GetProviderTlsFlags(uint32_t* aProviderTlsFlags) {
|
||||
MOZ_CRASH("Unused");
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
NS_IMETHODIMP
|
||||
FuzzySecurityInfo::GetKEAUsed(int16_t* aKea) {
|
||||
// Can be ssl_kea_dh or ssl_kea_ecdh for HTTP2
|
||||
*aKea = ssl_kea_ecdh;
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
NS_IMETHODIMP
|
||||
FuzzySecurityInfo::GetKEAKeyBits(uint32_t* aKeyBits) {
|
||||
// Must be >= 224 for ecdh and >= 2048 for dh when using HTTP2
|
||||
*aKeyBits = 256;
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
NS_IMETHODIMP
|
||||
FuzzySecurityInfo::GetSSLVersionUsed(int16_t* aSSLVersionUsed) {
|
||||
// Must be >= TLS 1.2 for HTTP2
|
||||
*aSSLVersionUsed = nsISSLSocketControl::TLS_VERSION_1_2;
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
NS_IMETHODIMP
|
||||
FuzzySecurityInfo::GetSSLVersionOffered(int16_t* aSSLVersionOffered) {
|
||||
*aSSLVersionOffered = nsISSLSocketControl::TLS_VERSION_1_2;
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
NS_IMETHODIMP
|
||||
FuzzySecurityInfo::GetMACAlgorithmUsed(int16_t* aMac) {
|
||||
// The only valid choice for HTTP2 is SSL_MAC_AEAD
|
||||
*aMac = nsISSLSocketControl::SSL_MAC_AEAD;
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
NS_IMETHODIMP
|
||||
FuzzySecurityInfo::GetClientCert(nsIX509Cert** aClientCert) {
|
||||
NS_ENSURE_ARG_POINTER(aClientCert);
|
||||
*aClientCert = nullptr;
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
NS_IMETHODIMP
|
||||
FuzzySecurityInfo::SetClientCert(nsIX509Cert* aClientCert) {
|
||||
MOZ_CRASH("Unused");
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
bool FuzzySecurityInfo::GetDenyClientCert() { return false; }
|
||||
|
||||
void FuzzySecurityInfo::SetDenyClientCert(bool aDenyClientCert) {
|
||||
// Called by mozilla::net::nsHttpConnection::StartSpdy
|
||||
}
|
||||
|
||||
NS_IMETHODIMP
|
||||
FuzzySecurityInfo::GetClientCertSent(bool* arg) {
|
||||
*arg = false;
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
NS_IMETHODIMP
|
||||
FuzzySecurityInfo::GetBypassAuthentication(bool* arg) {
|
||||
*arg = false;
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
NS_IMETHODIMP
|
||||
FuzzySecurityInfo::GetFailedVerification(bool* arg) {
|
||||
*arg = false;
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
NS_IMETHODIMP
|
||||
FuzzySecurityInfo::GetNegotiatedNPN(nsACString& aNegotiatedNPN) {
|
||||
aNegotiatedNPN = "h2";
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
NS_IMETHODIMP
|
||||
FuzzySecurityInfo::GetAlpnEarlySelection(nsACString& aAlpnSelected) {
|
||||
// TODO: For now we don't support early selection
|
||||
return NS_ERROR_NOT_AVAILABLE;
|
||||
}
|
||||
|
||||
NS_IMETHODIMP
|
||||
FuzzySecurityInfo::GetEarlyDataAccepted(bool* aAccepted) {
|
||||
*aAccepted = false;
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
NS_IMETHODIMP
|
||||
FuzzySecurityInfo::GetResumed(bool* aResumed) {
|
||||
*aResumed = false;
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
NS_IMETHODIMP
|
||||
FuzzySecurityInfo::DriveHandshake() { return NS_OK; }
|
||||
|
||||
NS_IMETHODIMP
|
||||
FuzzySecurityInfo::IsAcceptableForHost(const nsACString& hostname,
|
||||
bool* _retval) {
|
||||
NS_ENSURE_ARG(_retval);
|
||||
*_retval = true;
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
NS_IMETHODIMP
|
||||
FuzzySecurityInfo::TestJoinConnection(const nsACString& npnProtocol,
|
||||
const nsACString& hostname, int32_t port,
|
||||
bool* _retval) {
|
||||
*_retval = false;
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
NS_IMETHODIMP
|
||||
FuzzySecurityInfo::JoinConnection(const nsACString& npnProtocol,
|
||||
const nsACString& hostname, int32_t port,
|
||||
bool* _retval) {
|
||||
*_retval = false;
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
NS_IMETHODIMP
|
||||
FuzzySecurityInfo::ProxyStartSSL() { return NS_OK; }
|
||||
|
||||
NS_IMETHODIMP
|
||||
FuzzySecurityInfo::StartTLS() { return NS_OK; }
|
||||
|
||||
NS_IMETHODIMP
|
||||
FuzzySecurityInfo::SetNPNList(nsTArray<nsCString>& protocolArray) {
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
NS_IMETHODIMP
|
||||
FuzzySecurityInfo::GetEsniTxt(nsACString& aEsniTxt) { return NS_OK; }
|
||||
|
||||
NS_IMETHODIMP
|
||||
FuzzySecurityInfo::SetEsniTxt(const nsACString& aEsniTxt) {
|
||||
MOZ_CRASH("Unused");
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
NS_IMETHODIMP
|
||||
FuzzySecurityInfo::GetServerRootCertIsBuiltInRoot(bool* aIsBuiltInRoot) {
|
||||
*aIsBuiltInRoot = true;
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
} // namespace net
|
||||
} // namespace mozilla
|
@ -1,46 +0,0 @@
|
||||
/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
|
||||
/* vim:set ts=2 sw=2 sts=2 et cindent: */
|
||||
/* This Source Code Form is subject to the terms of the Mozilla Public
|
||||
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
|
||||
|
||||
#ifndef FuzzySecurityInfo_h__
|
||||
#define FuzzySecurityInfo_h__
|
||||
|
||||
#include "prerror.h"
|
||||
#include "sslproto.h"
|
||||
#include "sslt.h"
|
||||
|
||||
#include "nsCOMPtr.h"
|
||||
#include "nsISSLSocketControl.h"
|
||||
#include "nsIInterfaceRequestor.h"
|
||||
#include "nsITransportSecurityInfo.h"
|
||||
|
||||
namespace mozilla {
|
||||
namespace net {
|
||||
|
||||
class FuzzySecurityInfo final : public nsITransportSecurityInfo,
|
||||
public nsIInterfaceRequestor,
|
||||
public nsISSLSocketControl {
|
||||
|
||||
public:
|
||||
FuzzySecurityInfo();
|
||||
|
||||
NS_DECL_THREADSAFE_ISUPPORTS
|
||||
NS_DECL_NSITRANSPORTSECURITYINFO
|
||||
NS_DECL_NSIINTERFACEREQUESTOR
|
||||
NS_DECL_NSISSLSOCKETCONTROL
|
||||
|
||||
|
||||
protected:
|
||||
virtual ~FuzzySecurityInfo();
|
||||
|
||||
private:
|
||||
nsCOMPtr<nsIInterfaceRequestor> mCallbacks;
|
||||
|
||||
}; // class FuzzySecurityInfo
|
||||
|
||||
} // namespace net
|
||||
} // namespace mozilla
|
||||
|
||||
#endif // FuzzySecurityInfo_h__
|
@ -187,6 +187,7 @@ UNIFIED_SOURCES += [
|
||||
'ChannelDiverterParent.cpp',
|
||||
'Dashboard.cpp',
|
||||
'EventTokenBucket.cpp',
|
||||
'FuzzyLayer.cpp',
|
||||
'IOActivityMonitor.cpp',
|
||||
'LoadContextInfo.cpp',
|
||||
'LoadInfo.cpp',
|
||||
@ -250,12 +251,6 @@ UNIFIED_SOURCES += [
|
||||
'TLSServerSocket.cpp',
|
||||
]
|
||||
|
||||
if CONFIG['FUZZING_INTERFACES']:
|
||||
SOURCES += [
|
||||
'FuzzyLayer.cpp',
|
||||
'FuzzySecurityInfo.cpp',
|
||||
]
|
||||
|
||||
if CONFIG['FUZZING_INTERFACES'] and CONFIG['LIBFUZZER']:
|
||||
include('/tools/fuzzing/libfuzzer-flags.mozbuild')
|
||||
SOURCES += [
|
||||
|
@ -45,7 +45,6 @@
|
||||
|
||||
#if defined(FUZZING)
|
||||
# include "FuzzyLayer.h"
|
||||
# include "FuzzySecurityInfo.h"
|
||||
# include "mozilla/StaticPrefs_fuzzing.h"
|
||||
#endif
|
||||
|
||||
@ -1363,11 +1362,6 @@ nsresult nsSocketTransport::InitiateSocket() {
|
||||
return rv;
|
||||
}
|
||||
SOCKET_LOG(("Successfully attached fuzzing IOLayer.\n"));
|
||||
|
||||
if (usingSSL) {
|
||||
mSecInfo = static_cast<nsISupports*>(
|
||||
static_cast<nsISSLSocketControl*>(new FuzzySecurityInfo()));
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
||||
|
@ -17,9 +17,6 @@
|
||||
namespace mozilla {
|
||||
namespace net {
|
||||
|
||||
// Used to determine if the fuzzing target should use https:// in spec.
|
||||
static bool fuzzHttps = false;
|
||||
|
||||
class FuzzingStreamListener final : public nsIStreamListener {
|
||||
public:
|
||||
NS_DECL_ISUPPORTS
|
||||
@ -86,12 +83,6 @@ static int FuzzingInitNetworkHttp(int* argc, char*** argv) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int FuzzingInitNetworkHttp2(int* argc, char*** argv) {
|
||||
fuzzHttps = true;
|
||||
Preferences::SetInt("network.http.spdy.default-concurrent", 1);
|
||||
return FuzzingInitNetworkHttp(argc, argv);
|
||||
}
|
||||
|
||||
static int FuzzingRunNetworkHttp(const uint8_t* data, size_t size) {
|
||||
// Set the data to be processed
|
||||
setNetworkFuzzingBuffer(data, size);
|
||||
@ -103,12 +94,7 @@ static int FuzzingRunNetworkHttp(const uint8_t* data, size_t size) {
|
||||
nsAutoCString spec;
|
||||
nsresult rv;
|
||||
|
||||
if (fuzzHttps) {
|
||||
spec = "https://127.0.0.1/";
|
||||
} else {
|
||||
spec = "http://127.0.0.1/";
|
||||
}
|
||||
|
||||
spec = "http://127.0.0.1:8000";
|
||||
if (NS_NewURI(getter_AddRefs(url), spec) != NS_OK) {
|
||||
MOZ_CRASH("Call to NS_NewURI failed.");
|
||||
}
|
||||
@ -171,8 +157,5 @@ static int FuzzingRunNetworkHttp(const uint8_t* data, size_t size) {
|
||||
MOZ_FUZZING_INTERFACE_RAW(FuzzingInitNetworkHttp, FuzzingRunNetworkHttp,
|
||||
NetworkHttp);
|
||||
|
||||
MOZ_FUZZING_INTERFACE_RAW(FuzzingInitNetworkHttp2, FuzzingRunNetworkHttp,
|
||||
NetworkHttp2);
|
||||
|
||||
} // namespace net
|
||||
} // namespace mozilla
|
||||
|
@ -227,14 +227,20 @@ nsNSSSocketInfo::GetFailedVerification(bool* arg) {
|
||||
|
||||
NS_IMETHODIMP
|
||||
nsNSSSocketInfo::GetNotificationCallbacks(nsIInterfaceRequestor** aCallbacks) {
|
||||
nsCOMPtr<nsIInterfaceRequestor> ir(mCallbacks);
|
||||
ir.forget(aCallbacks);
|
||||
*aCallbacks = mCallbacks;
|
||||
NS_IF_ADDREF(*aCallbacks);
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
NS_IMETHODIMP
|
||||
nsNSSSocketInfo::SetNotificationCallbacks(nsIInterfaceRequestor* aCallbacks) {
|
||||
if (!aCallbacks) {
|
||||
mCallbacks = nullptr;
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
mCallbacks = aCallbacks;
|
||||
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user