fuzz: simplify FuzzedSock::m_peek_data

`FuzzedSock::m_peek_data` need not be an optional of a vector.
It can be just a vector whereas an empty vector denotes "no peek data".
This commit is contained in:
Vasil Dimov committed 2024-06-14 14:44:26 +02:00
1 parent 0b94fb8720
commit b51d75ea97
2 files changed
+4 -4

No files matched your search

+3 -3
View File
@@ -191,11 +191,11 @@ ssize_t FuzzedSock::Recv(void* buf, size_t len, int flags) const
}
std::vector<uint8_t> random_bytes;
bool pad_to_len_bytes{m_fuzzed_data_provider.ConsumeBool()};
if (m_peek_data.has_value()) {
if (!m_peek_data.empty()) {
// `MSG_PEEK` was used in the preceding `Recv()` call, return `m_peek_data`.
random_bytes = m_peek_data.value();
random_bytes = m_peek_data;
if ((flags & MSG_PEEK) == 0) {
m_peek_data.reset();
m_peek_data.clear();
}
pad_to_len_bytes = false;
} else if ((flags & MSG_PEEK) != 0) {
+1 -1
View File
@@ -43,7 +43,7 @@ class FuzzedSock : public Sock
* If `MSG_PEEK` is used, then our `Recv()` returns some random data as usual, but on the next
* `Recv()` call we must return the same data, thus we remember it here.
*/
mutable std::optional<std::vector<uint8_t>> m_peek_data;
mutable std::vector<uint8_t> m_peek_data;
/**
* Whether to pretend that the socket is select(2)-able. This is randomly set in the