Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/mapsme/omim.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSergey Yershov <syershov@maps.me>2016-11-03 18:36:07 +0300
committerSergey Yershov <syershov@maps.me>2016-11-03 18:58:25 +0300
commitf7f919196a304f0a605a6f35c80696e8aea215f7 (patch)
treeab2d198bf79785122e80eb5877c44a8652eb273a /tracking
parentdd7fce49f693edd4019552bede68bb878ae72b77 (diff)
[tracking] Fix skipping absent packet header
Diffstat (limited to 'tracking')
-rw-r--r--tracking/protocol.cpp5
-rw-r--r--tracking/tracking_tests/protocol_test.cpp6
2 files changed, 5 insertions, 6 deletions
diff --git a/tracking/protocol.cpp b/tracking/protocol.cpp
index aea3402203..c0cfab40c0 100644
--- a/tracking/protocol.cpp
+++ b/tracking/protocol.cpp
@@ -79,11 +79,10 @@ pair<Protocol::PacketType, size_t> Protocol::DecodeHeader(vector<uint8_t> const
// static
string Protocol::DecodeAuthPacket(Protocol::PacketType type, vector<uint8_t> const & data)
{
- ASSERT_GREATER_OR_EQUAL(data.size(), sizeof(uint32_t /* header */), ());
switch (type)
{
case Protocol::PacketType::AuthV0:
- return string(begin(data) + sizeof(uint32_t /* header */), end(data));
+ return string(begin(data), end(data));
case Protocol::PacketType::DataV0: break;
}
return string();
@@ -92,11 +91,9 @@ string Protocol::DecodeAuthPacket(Protocol::PacketType type, vector<uint8_t> con
// static
Protocol::DataElementsVec Protocol::DecodeDataPacket(PacketType type, vector<uint8_t> const & data)
{
- ASSERT_GREATER_OR_EQUAL(data.size(), sizeof(uint32_t /* header */), ());
DataElementsVec points;
MemReader memReader(data.data(), data.size());
ReaderSource<MemReader> src(memReader);
- src.Skip(sizeof(uint32_t /* header */));
switch (type)
{
case Protocol::PacketType::DataV0:
diff --git a/tracking/tracking_tests/protocol_test.cpp b/tracking/tracking_tests/protocol_test.cpp
index 3bdbf1798d..268f375f65 100644
--- a/tracking/tracking_tests/protocol_test.cpp
+++ b/tracking/tracking_tests/protocol_test.cpp
@@ -52,7 +52,8 @@ UNIT_TEST(Protocol_DecodeAuthPacket)
TEST_EQUAL(packet.size(), 7, ());
TEST_EQUAL(Protocol::PacketType(packet[0]), Protocol::PacketType::CurrentAuth, ());
- auto result = Protocol::DecodeAuthPacket(Protocol::PacketType::CurrentAuth, packet);
+ auto payload = vector<uint8_t>(begin(packet) + sizeof(uint32_t /* header */), end(packet));
+ auto result = Protocol::DecodeAuthPacket(Protocol::PacketType::CurrentAuth, payload);
TEST_EQUAL(result, "ABC", ());
}
@@ -69,7 +70,8 @@ UNIT_TEST(Protocol_DecodeDataPacket)
TEST_EQUAL(packet.size(), 26, ());
TEST_EQUAL(Protocol::PacketType(packet[0]), Protocol::PacketType::CurrentData, ());
- Container result = Protocol::DecodeDataPacket(Protocol::PacketType::CurrentData, packet);
+ auto payload = vector<uint8_t>(begin(packet) + sizeof(uint32_t /* header */), end(packet));
+ Container result = Protocol::DecodeDataPacket(Protocol::PacketType::CurrentData, payload);
TEST_EQUAL(points.size(), result.size(), ());
for (size_t i = 0; i < points.size(); ++i)