mirror of
https://github.com/kidfromjupiter/nearby.git
synced 2026-09-16 07:36:10 -04:00
Fix asan/msan bug
PiperOrigin-RevId: 780237506
This commit is contained in:
committed by
Copybara-Service
parent
6a5d39eb59
commit
a2bcb2db27
@@ -115,7 +115,7 @@ absl::StatusOr<BleAdvertisement> BleAdvertisement::CreateBleAdvertisement(
|
||||
}
|
||||
|
||||
ByteArray advertisement_bytes{ble_advertisement_bytes};
|
||||
StreamReader stream_reader{advertisement_bytes};
|
||||
StreamReader stream_reader{&advertisement_bytes};
|
||||
// The first 1 byte is supposed to be the version and pcp.
|
||||
auto version_and_pcp_byte = stream_reader.ReadUint8();
|
||||
if (!version_and_pcp_byte.has_value()) {
|
||||
|
||||
@@ -75,7 +75,7 @@ BluetoothDeviceName::BluetoothDeviceName(
|
||||
return;
|
||||
}
|
||||
|
||||
StreamReader stream_reader{bluetooth_device_name_bytes};
|
||||
StreamReader stream_reader{&bluetooth_device_name_bytes};
|
||||
// The first 1 byte is supposed to be the version and pcp.
|
||||
auto version_and_pcp_byte = stream_reader.ReadUint8();
|
||||
if (!version_and_pcp_byte.has_value()) {
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -100,7 +100,7 @@ absl::StatusOr<BleAdvertisement> BleAdvertisement::CreateBleAdvertisement(
|
||||
}
|
||||
|
||||
ByteArray advertisement_bytes(ble_advertisement_bytes);
|
||||
StreamReader stream_reader(advertisement_bytes);
|
||||
StreamReader stream_reader(&advertisement_bytes);
|
||||
// The first 1 byte is supposed to be the version, socket version and the fast
|
||||
// advertisement flag.
|
||||
auto version_byte = stream_reader.ReadUint8();
|
||||
@@ -308,7 +308,7 @@ BleAdvertisement::BleExtraFields::BleExtraFields(
|
||||
}
|
||||
|
||||
ByteArray mutated_extra_fields_bytes = {ble_extra_fields_bytes};
|
||||
StreamReader stream_reader{mutated_extra_fields_bytes};
|
||||
StreamReader stream_reader{&mutated_extra_fields_bytes};
|
||||
// The first 1 byte is field mask.
|
||||
auto mask_byte = stream_reader.ReadUint8().value_or(0);
|
||||
if (!mask_byte) {
|
||||
|
||||
@@ -86,7 +86,7 @@ BleAdvertisementHeader::BleAdvertisementHeader(
|
||||
return;
|
||||
}
|
||||
|
||||
StreamReader stream_reader(advertisement_header_bytes);
|
||||
StreamReader stream_reader(&advertisement_header_bytes);
|
||||
// The first 1 byte is supposed to be the version and number of slots.
|
||||
auto version_and_num_slots_byte = stream_reader.ReadUint8();
|
||||
if (!version_and_num_slots_byte.has_value()) {
|
||||
|
||||
@@ -51,7 +51,7 @@ absl::StatusOr<BleL2capPacket> BleL2capPacket::CreateFromBytes(
|
||||
"Cannot deserialize BleL2capPacket: input bytes too short.");
|
||||
}
|
||||
|
||||
StreamReader stream_reader(bytes);
|
||||
StreamReader stream_reader(&bytes);
|
||||
// The first 1 byte is the command.
|
||||
auto command_byte = stream_reader.ReadUint8();
|
||||
if (!command_byte.has_value()) {
|
||||
|
||||
@@ -137,7 +137,7 @@ BlePacket::BlePacket(const ByteArray& ble_packet_bytes) {
|
||||
}
|
||||
|
||||
ByteArray packet_bytes(ble_packet_bytes);
|
||||
StreamReader stream_reader{packet_bytes};
|
||||
StreamReader stream_reader{&packet_bytes};
|
||||
// The first 3 bytes are supposed to be the service_id_hash.
|
||||
auto service_id_hash_bytes = stream_reader.ReadBytes(kServiceIdHashLength);
|
||||
if (!service_id_hash_bytes.has_value()) {
|
||||
|
||||
@@ -96,7 +96,7 @@ WifiLanServiceInfo::WifiLanServiceInfo(const NsdServiceInfo& nsd_service_info) {
|
||||
return;
|
||||
}
|
||||
|
||||
StreamReader stream_reader{service_info_bytes};
|
||||
StreamReader stream_reader{&service_info_bytes};
|
||||
// The first 1 byte is supposed to be the version and pcp.
|
||||
auto version_and_pcp_byte = stream_reader.ReadUint8();
|
||||
if (!version_and_pcp_byte.has_value()) {
|
||||
|
||||
Reference in New Issue
Block a user