rust: Add missing Rust allow path modules.

Adds rust_benchmark and rust_fuzz to the list of Rust module types which
need to be in the allowed paths, and a comment about rust_bindgen and
rust_protobuf.

This also adds a downstream allow path list which helps prevent merge
conflicts if downstream wants to extend the list of allowed paths.

Bug: 191507775
Test: Paths are checked for the newly added module types.
Test: Paths in DownstreamRustAllowedPaths allow Rust modules.
Change-Id: Ida80c33a815d47ffdfb1f648125d71316a2a9d8a
This commit is contained in:
Ivan Lozano
2021-06-28 11:27:11 -04:00
parent 770193da6c
commit 03a94c48da
2 changed files with 11 additions and 1 deletions

View File

@@ -26,9 +26,18 @@ var (
"system/logging/rust",
"system/security",
"system/tools/aidl",
"tools/security/fuzzing/example_rust_fuzzer",
}
DownstreamRustAllowedPaths = []string{
// Add downstream allowed Rust paths here.
}
RustModuleTypes = []string{
// Don't add rust_bindgen or rust_protobuf as these are code generation modules
// and can be expected to be in paths without Rust code.
"rust_benchmark",
"rust_benchmark_host",
"rust_binary",
"rust_binary_host",
"rust_library",
@@ -37,6 +46,7 @@ var (
"rust_ffi",
"rust_ffi_shared",
"rust_ffi_static",
"rust_fuzz",
"rust_library_host",
"rust_library_host_dylib",
"rust_library_host_rlib",

View File

@@ -35,7 +35,7 @@ func init() {
android.AddNeverAllowRules(
android.NeverAllow().
NotIn(config.RustAllowedPaths...).
NotIn(append(config.RustAllowedPaths, config.DownstreamRustAllowedPaths...)...).
ModuleType(config.RustModuleTypes...))
android.RegisterModuleType("rust_defaults", defaultsFactory)