Fix out of bounds read in dumpsys
ResolverController::dump() could read past the end of the
ExternalPrivateDnsStatus.serverStatus if there were more than MAXNS
servers configured.
Test: atest
Change-Id: I9c20b7bfe078c9181ee008f17c411d007926df7a
diff --git a/resolv/PrivateDnsConfiguration.cpp b/resolv/PrivateDnsConfiguration.cpp
index b262a2f..678589b 100644
--- a/resolv/PrivateDnsConfiguration.cpp
+++ b/resolv/PrivateDnsConfiguration.cpp
@@ -194,7 +194,6 @@
const auto netPair = mPrivateDnsTransports.find(netId);
if (netPair != mPrivateDnsTransports.end()) {
- status->numServers = static_cast<int>(netPair->second.size());
int count = 0;
for (const auto& serverPair : netPair->second) {
status->serverStatus[count].ss = serverPair.first.ss;
@@ -204,6 +203,7 @@
count++;
if (count >= MAXNS) break; // Lose the rest
}
+ status->numServers = count;
}
}