8000 Skip map 32 · enginux/ArduinoJson@09e50f1 · GitHub
[go: up one dir, main page]

Skip to content

Commit 09e50f1

Browse files
committed
Skip map 32
1 parent a3a3d9d commit 09e50f1

File tree

2 files changed

+17
-0
lines changed

2 files changed

+17
-0
lines changed

extras/tests/MsgPackDeserializer/filter.cpp

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -311,6 +311,20 @@ TEST_CASE("deserializeMsgPack() filter") {
311311
CHECK(doc.as<std::string>() == "{\"include\":42}");
312312
CHECK(doc.memoryUsage() == JSON_OBJECT_SIZE(1) + 8);
313313
}
314+
315+
SECTION("skip map 32") {
316+
error = deserializeMsgPack(doc,
317+
"\x82\xA6ignore"
318+
"\xDF\x00\x00\x00\x02"
319+
"\xA4zero\xCA\x00\x00\x00\x00"
320+
"\xA2pi\xCA\x40\x48\xF5\xC3"
321+
"\xA7include\x2A",
322+
filterOpt);
323+
324+
CHECK(error == DeserializationError::Ok);
325+
CHECK(doc.as<std::string>() == "{\"include\":42}");
326+
CHECK(doc.memoryUsage() == JSON_OBJECT_SIZE(1) + 8);
327+
}
314328
}
315329

316330
SECTION("filter = true") {

src/ArduinoJson/MsgPack/MsgPackDeserializer.hpp

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -204,6 +204,9 @@ class MsgPackDeserializer {
204204

205205
case 0xde: // map 16
206206
return skipObject<uint16_t>(nestingLimit);
207+
208+
case 0xdf: // map 32
209+
return skipObject<uint32_t>(nestingLimit);
207210
}
208211

209212
return true;

0 commit comments

Comments
 (0)
0