fuzz/tls_socket.cc
author Makoto Kato <m_kato@ga2.so-net.ne.jp>
Wed, 25 Nov 2020 10:53:42 +0000
changeset 15805 f1e48fbead3d9e69500d7aedc1ef6e4bf334f41e
parent 13204 97406323124d75e17bd4a88f98337580f9f1aa7f
permissions -rw-r--r--
Bug 1678990 - Use __ARM_FEATURE_CRYPTO for feature detection. r=bbeurdouche Actually, we have CPU feature detection for Linux and FreeBSD on aarch64 platform. But others don't. macOS doesn't has any CPU feature detection for ARM Crypto Extension, but toolchain default is turned on. So we should respect __ARM_FEATURE_CRYPTO. Differential Revision: https://phabricator.services.mozilla.com/D97909

/* 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 <assert.h>
#include <string.h>
#include <algorithm>

#include "prerror.h"
#include "prio.h"

#include "tls_socket.h"

int32_t DummyPrSocket::Read(PRFileDesc *f, void *data, int32_t len) {
  assert(data && len > 0);

  int32_t amount = std::min(len, static_cast<int32_t>(len_));
  memcpy(data, buf_, amount);

  buf_ += amount;
  len_ -= amount;

  return amount;
}

int32_t DummyPrSocket::Write(PRFileDesc *f, const void *buf, int32_t length) {
  return length;
}

int32_t DummyPrSocket::Recv(PRFileDesc *f, void *buf, int32_t buflen,
                            int32_t flags, PRIntervalTime to) {
  assert(flags == 0);
  return Read(f, buf, buflen);
}