Commit 62a26df9 authored by Cosmin Sabou's avatar Cosmin Sabou
Browse files

Backed out changeset 55df21f1b7d6 (bug 1566342) for causing build bustages on...

Backed out changeset 55df21f1b7d6 (bug 1566342) for causing build bustages on FuzzyLayer.cpp. CLOSED TREE
parent 89547a4a
Loading
Loading
Loading
Loading
+1 −4
Original line number Diff line number Diff line
@@ -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().
+0 −2
Original line number Diff line number Diff line
@@ -8,8 +8,6 @@
#define FuzzyLayer_h__

#include "prerror.h"
#include "nsError.h"
#include "nsIFile.h"

namespace mozilla {
namespace net {
+0 −327
Original line number Diff line number Diff line
/* -*- 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

netwerk/base/FuzzySecurityInfo.h

deleted100644 → 0
+0 −46
Original line number Diff line number Diff line
/* -*- 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__
+1 −6
Original line number Diff line number Diff line
@@ -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 += [
Loading