diff options
| author | 2022-12-27 21:40:24 +0000 | |
|---|---|---|
| committer | 2022-12-27 21:40:24 +0000 | |
| commit | 139344295cccf4b70f4087e5e0bc9800b0f891bc (patch) | |
| tree | 863f3b77679d6750eb4307463f83bdc62fbe2ba4 | |
| parent | 9e62239611656c770dd8abe882ed44261105426c (diff) | |
| parent | 10f612bbf6f5fa0666c2bb5fbe2bc840bc95962f (diff) | |
Merge "binder_rpc_fuzzer: limit connections"
| -rw-r--r-- | libs/binder/tests/rpc_fuzzer/main.cpp | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/libs/binder/tests/rpc_fuzzer/main.cpp b/libs/binder/tests/rpc_fuzzer/main.cpp index f68a56144d..b8ae84d5c0 100644 --- a/libs/binder/tests/rpc_fuzzer/main.cpp +++ b/libs/binder/tests/rpc_fuzzer/main.cpp @@ -133,8 +133,13 @@ extern "C" int LLVMFuzzerTestOneInput(const uint8_t* data, size_t size) { bool hangupBeforeShutdown = provider.ConsumeBool(); + // b/260736889 - limit arbitrarily, due to thread resource exhaustion, which currently + // aborts. Servers should consider RpcServer::setConnectionFilter instead. + constexpr size_t kMaxConnections = 1000; + while (provider.remaining_bytes() > 0) { - if (connections.empty() || provider.ConsumeBool()) { + if (connections.empty() || + (connections.size() < kMaxConnections && provider.ConsumeBool())) { base::unique_fd fd(TEMP_FAILURE_RETRY(socket(AF_UNIX, SOCK_STREAM | SOCK_CLOEXEC, 0))); CHECK_NE(fd.get(), -1); CHECK_EQ(0, |