From 0d472c19533a0c13ea8b79e84bcff49230179519 Mon Sep 17 00:00:00 2001 From: Antoine Poinsot Date: Wed, 22 Jan 2025 11:49:33 -0500 Subject: [PATCH] fuzz: never return an uninitialized sockaddr in FuzzedSock::GetSockName The fuzz provider's `ConsumeData` may return less data than necessary to fill the sockaddr struct and still return success. Fix this to avoid the caller using uninitialized memory. --- src/test/fuzz/util/net.cpp | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/test/fuzz/util/net.cpp b/src/test/fuzz/util/net.cpp index a134e5ad4f7..669f4438717 100644 --- a/src/test/fuzz/util/net.cpp +++ b/src/test/fuzz/util/net.cpp @@ -357,7 +357,9 @@ int FuzzedSock::GetSockName(sockaddr* name, socklen_t* name_len) const SetFuzzedErrNo(m_fuzzed_data_provider, getsockname_errnos); return -1; } + assert(name_len); *name_len = m_fuzzed_data_provider.ConsumeData(name, *name_len); + if (*name_len < (int)sizeof(sockaddr)) return -1; return 0; }