summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Steven Moreland <smoreland@google.com> 2022-12-27 21:40:24 +0000
committer Gerrit Code Review <noreply-gerritcodereview@google.com> 2022-12-27 21:40:24 +0000
commit139344295cccf4b70f4087e5e0bc9800b0f891bc (patch)
tree863f3b77679d6750eb4307463f83bdc62fbe2ba4
parent9e62239611656c770dd8abe882ed44261105426c (diff)
parent10f612bbf6f5fa0666c2bb5fbe2bc840bc95962f (diff)
Merge "binder_rpc_fuzzer: limit connections"
-rw-r--r--libs/binder/tests/rpc_fuzzer/main.cpp7
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,