# Copyright 2018 The Fuchsia Authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.

declare_args() {
  # TODO(davemoore): Remove this entire mechanism once standalone scudo is the
  # default (DNO-442)
  # Enable the [Scudo](https://llvm.org/docs/ScudoHardenedAllocator.html)
  # memory allocator.
  use_scudo = true

  # Default [Scudo](https://llvm.org/docs/ScudoHardenedAllocator.html)
  # options (before the `SCUDO_OPTIONS` environment variable is read at
  # runtime).  *NOTE:* This affects only components using the `scudo`
  # variant (see GN build argument `select_variant`), and does not affect
  # anything when the `use_scudo` build flag is set instead.
  scudo_default_options = [
    "abort_on_error=1",  # get stacktrace on error
    "QuarantineSizeKb=0",  # disables quarantine
    "ThreadLocalQuarantineSizeKb=0",  # disables quarantine
    "DeallocationTypeMismatch=false",  # TODO(flowerhack) re-enable when US-495
                                       # is resolved

    "DeleteSizeMismatch=false",  # TODO(flowerhack) re-enable when US-495
                                 # is resolved

    "allocator_may_return_null=true",
  ]
}
