Fix asan/msan bug

PiperOrigin-RevId: 780237506
This commit is contained in:
Guogang Li
2025-07-07 13:30:50 -07:00
committed by Copybara-Service
parent 6a5d39eb59
commit a2bcb2db27
15 changed files with 25 additions and 24 deletions
@@ -32,7 +32,7 @@ constexpr absl::string_view kFakeEncryptionKey =
// Should always match the protocol implementation to read device name.
// LINT.IfChange
std::optional<std::string> ReadDeviceName(const ByteArray& endpoint_info) {
StreamReader reader(endpoint_info);
StreamReader reader(&endpoint_info);
std::optional<uint8_t> version = reader.ReadBits(3);
if (!version.has_value() || *version > 1) {
return std::nullopt;
@@ -99,7 +99,7 @@ std::optional<DataElement> DataElement::FromStreamReader(StreamReader& reader) {
std::optional<DataElement> DataElement::FromData(const std::string& data) {
ByteArray bytes(data);
StreamReader reader(bytes);
StreamReader reader(&bytes);
return FromStreamReader(reader);
}
@@ -48,7 +48,7 @@ TEST(DataElementTest, FromInvalidLength) {
TEST(DataElementTest, OneByteFromStreamReader) {
ByteArray bytes("\x21\x01\x02");
StreamReader reader(bytes);
StreamReader reader(&bytes);
std::optional<DataElement> data_element =
DataElement::FromStreamReader(reader);
ASSERT_TRUE(data_element.has_value());
@@ -59,7 +59,7 @@ TEST(DataElementTest, OneByteFromStreamReader) {
TEST(DataElementTest, TwoByteFromStreamReader) {
ByteArray bytes("\x84\x01\x01\x02\x03\x04");
StreamReader reader(bytes);
StreamReader reader(&bytes);
std::optional<DataElement> data_element =
DataElement::FromStreamReader(reader);
ASSERT_TRUE(data_element.has_value());
@@ -79,7 +79,7 @@ std::optional<DctAdvertisement> DctAdvertisement::Create(
std::optional<DctAdvertisement> DctAdvertisement::Parse(
const std::string& advertisement) {
ByteArray data(advertisement);
StreamReader reader(data);
StreamReader reader(&data);
DctAdvertisement dct_advertisement;
std::optional<uint8_t> header = reader.ReadUint8();
@@ -118,7 +118,8 @@ std::optional<DctAdvertisement> DctAdvertisement::Parse(
return std::nullopt;
}
StreamReader psm_reader(ByteArray(psm->value()));
ByteArray psm_bytes(psm->value());
StreamReader psm_reader(&psm_bytes);
dct_advertisement.psm_ = psm_reader.ReadUint16().value_or(0);
// Read device information