xref: /aosp_15_r20/external/cronet/build/config/unsafe_buffers_paths.txt (revision 6777b5387eb2ff775bb5750e3f5d96f37fb7352b)
1*6777b538SAndroid Build Coastguard Worker# Copyright 2024 The Chromium Project. All rights reserved.
2*6777b538SAndroid Build Coastguard Worker# Use of this source code is governed by a BSD-style license that can be
3*6777b538SAndroid Build Coastguard Worker# found in the LICENSE file.
4*6777b538SAndroid Build Coastguard Worker
5*6777b538SAndroid Build Coastguard Worker# The set of path prefixes that should be checked for unsafe pointer usage (see
6*6777b538SAndroid Build Coastguard Worker# -Wunsafe-buffer-usage in Clang).
7*6777b538SAndroid Build Coastguard Worker#
8*6777b538SAndroid Build Coastguard Worker# ***
9*6777b538SAndroid Build Coastguard Worker# Paths should be written as relative to the root of the source tree with
10*6777b538SAndroid Build Coastguard Worker# unix-style path separators. Directory prefixes should end with `/`, such
11*6777b538SAndroid Build Coastguard Worker# as `base/`.
12*6777b538SAndroid Build Coastguard Worker# ***
13*6777b538SAndroid Build Coastguard Worker#
14*6777b538SAndroid Build Coastguard Worker# Lines that begin with `-` name path prefixes that will *not* be checked for
15*6777b538SAndroid Build Coastguard Worker# unsafe-buffer-usage. They are known to do unsafe things and should be
16*6777b538SAndroid Build Coastguard Worker# changed to use constructs like base::span or containers like base::HeapArray
17*6777b538SAndroid Build Coastguard Worker# and std::vector instead. See https://crbug.com/40285824
18*6777b538SAndroid Build Coastguard Worker#
19*6777b538SAndroid Build Coastguard Worker# Lines that begin with `+` name path prefixes that have no unsafe-buffer-usage
20*6777b538SAndroid Build Coastguard Worker# (or all such usage is annotated), and are protected against new unsafe pointer
21*6777b538SAndroid Build Coastguard Worker# behaviour by the compiler.
22*6777b538SAndroid Build Coastguard Worker#
23*6777b538SAndroid Build Coastguard Worker# By default, all files are checked for unsafe-buffer-usage unless they are
24*6777b538SAndroid Build Coastguard Worker# match a `-` path prefix line here. If a file matches both a `-` and `+` line,
25*6777b538SAndroid Build Coastguard Worker# the `+` line takes precedence and the file will be checked.
26*6777b538SAndroid Build Coastguard Worker#
27*6777b538SAndroid Build Coastguard Worker# To opt individual files out of checks, place `#pragma allow_unsafe_buffers`
28*6777b538SAndroid Build Coastguard Worker# anywhere in the (source or header) file. These pragmas represent the
29*6777b538SAndroid Build Coastguard Worker# technical debt and security risk present in the file through unsafe
30*6777b538SAndroid Build Coastguard Worker# pointer usage.
31*6777b538SAndroid Build Coastguard Worker#
32*6777b538SAndroid Build Coastguard Worker# ***
33*6777b538SAndroid Build Coastguard Worker# Recommended process for removing a `-dir/` line from this file:
34*6777b538SAndroid Build Coastguard Worker#
35*6777b538SAndroid Build Coastguard Worker# 1. Remove the `-dir/` line from this paths file.
36*6777b538SAndroid Build Coastguard Worker#    a. Possibly add some subdirectories if needed to reduce scope,
37*6777b538SAndroid Build Coastguard Worker#       like `-dir/sub_dir/`.
38*6777b538SAndroid Build Coastguard Worker# 2. Add `#pragma allow_unsafe_buffers` to every file in the directory that now
39*6777b538SAndroid Build Coastguard Worker#    has a compilation error, with a TODO to the tracking bug for the
40*6777b538SAndroid Build Coastguard Worker#    directory.
41*6777b538SAndroid Build Coastguard Worker# 3. Work through the files in the directory, converting pointers to spans, or
42*6777b538SAndroid Build Coastguard Worker#    to owning containers like HeapArray and vector. Remove the pragmas from
43*6777b538SAndroid Build Coastguard Worker#    the files when there is no unsafe pointer usage left in each one.
44*6777b538SAndroid Build Coastguard Worker#
45*6777b538SAndroid Build Coastguard Worker# See `docs/unsafe_buffers.md`.
46*6777b538SAndroid Build Coastguard Worker
47*6777b538SAndroid Build Coastguard Worker-android_webview/
48*6777b538SAndroid Build Coastguard Worker-apps/
49*6777b538SAndroid Build Coastguard Worker-ash/
50*6777b538SAndroid Build Coastguard Worker
51*6777b538SAndroid Build Coastguard Worker-base/
52*6777b538SAndroid Build Coastguard Worker+base/containers/buffer_iterator_nocompile.nc
53*6777b538SAndroid Build Coastguard Worker+base/containers/span.h
54*6777b538SAndroid Build Coastguard Worker+base/strings/cstring_view
55*6777b538SAndroid Build Coastguard Worker+base/unsafe_buffers_unittest.cc
56*6777b538SAndroid Build Coastguard Worker+base/unsafe_buffers_nocompile.nc
57*6777b538SAndroid Build Coastguard Worker
58*6777b538SAndroid Build Coastguard Worker-build/
59*6777b538SAndroid Build Coastguard Worker-build_overrides/
60*6777b538SAndroid Build Coastguard Worker-buildtools/
61*6777b538SAndroid Build Coastguard Worker-cc/
62*6777b538SAndroid Build Coastguard Worker-chrome/
63*6777b538SAndroid Build Coastguard Worker-chromecast/
64*6777b538SAndroid Build Coastguard Worker-chromeos/
65*6777b538SAndroid Build Coastguard Worker-clank/
66*6777b538SAndroid Build Coastguard Worker-codelabs/
67*6777b538SAndroid Build Coastguard Worker-components/
68*6777b538SAndroid Build Coastguard Worker-content/
69*6777b538SAndroid Build Coastguard Worker-courgette/
70*6777b538SAndroid Build Coastguard Worker-crypto/
71*6777b538SAndroid Build Coastguard Worker-data/
72*6777b538SAndroid Build Coastguard Worker-dbus/
73*6777b538SAndroid Build Coastguard Worker-device/
74*6777b538SAndroid Build Coastguard Worker-docs/
75*6777b538SAndroid Build Coastguard Worker-extensions/
76*6777b538SAndroid Build Coastguard Worker-fuchsia_web/
77*6777b538SAndroid Build Coastguard Worker-gin/
78*6777b538SAndroid Build Coastguard Worker-google_apis/
79*6777b538SAndroid Build Coastguard Worker-google_update/
80*6777b538SAndroid Build Coastguard Worker-gpu/
81*6777b538SAndroid Build Coastguard Worker-headless/
82*6777b538SAndroid Build Coastguard Worker-infra/
83*6777b538SAndroid Build Coastguard Worker-internal/
84*6777b538SAndroid Build Coastguard Worker-ios/
85*6777b538SAndroid Build Coastguard Worker-ios_internal/
86*6777b538SAndroid Build Coastguard Worker-ipc/
87*6777b538SAndroid Build Coastguard Worker-media/
88*6777b538SAndroid Build Coastguard Worker-mojo/
89*6777b538SAndroid Build Coastguard Worker-native_client/
90*6777b538SAndroid Build Coastguard Worker-native_client_sdk/
91*6777b538SAndroid Build Coastguard Worker-net/
92*6777b538SAndroid Build Coastguard Worker-pdf/
93*6777b538SAndroid Build Coastguard Worker-ppapi/
94*6777b538SAndroid Build Coastguard Worker-printing/
95*6777b538SAndroid Build Coastguard Worker-remoting/
96*6777b538SAndroid Build Coastguard Worker-rlz/
97*6777b538SAndroid Build Coastguard Worker-sandbox/
98*6777b538SAndroid Build Coastguard Worker-services/
99*6777b538SAndroid Build Coastguard Worker-signing_keys/
100*6777b538SAndroid Build Coastguard Worker-skia/
101*6777b538SAndroid Build Coastguard Worker-sql/
102*6777b538SAndroid Build Coastguard Worker-storage/
103*6777b538SAndroid Build Coastguard Worker-testing/
104*6777b538SAndroid Build Coastguard Worker-third_party/
105*6777b538SAndroid Build Coastguard Worker-tools/
106*6777b538SAndroid Build Coastguard Worker-ui/
107*6777b538SAndroid Build Coastguard Worker-url/
108*6777b538SAndroid Build Coastguard Worker-v8/
109*6777b538SAndroid Build Coastguard Worker-webkit/
110