diff --git a/build/args/all.gn b/build/args/all.gn index d982726bc3..f8ed5769a9 100644 --- a/build/args/all.gn +++ b/build/args/all.gn @@ -77,3 +77,6 @@ enterprise_cloud_content_analysis = false # TODO: remove dependency on legacy ipc # https://issues.chromium.org/issues/40943039 content_enable_legacy_ipc = true + +# Electron has its own unsafe-buffers enforcement directories. +clang_unsafe_buffers_paths = "//electron/electron_unsafe_buffers_paths.txt" diff --git a/electron_unsafe_buffers_paths.txt b/electron_unsafe_buffers_paths.txt new file mode 100644 index 0000000000..1438934591 --- /dev/null +++ b/electron_unsafe_buffers_paths.txt @@ -0,0 +1,34 @@ +# Copyright 2024 The Electron Authors. All rights reserved. +# Use of this source code is governed by a BSD-style license that can be +# found in the LICENSE file. + +# The set of path prefixes that should be checked for unsafe buffer usage (see +# -Wunsafe-buffer-usage in Clang). +# +# *** +# Paths should be written as relative to the root of the source tree with +# unix-style path separators. Directory prefixes should end with `/`, such +# as `base/`. +# *** +# +# Files in this set are known to not use pointer arithmetic/subscripting, and +# make use of constructs like base::span or containers like std::vector instead. +# +# See `docs/unsafe_buffers.md`. + +# These directories are excluded because they come from outside Electron and +# we don't have control over their contents. +-base/ +-chrome/ +-components/ +-device/ +-extensions/ +-google_apis/ +-net/ +-services/ +-skia/ +-third_party/ +-tools/ +-ui/ +-url/ +-v8/