Comments (8)
Valgrind says it's in JsonObjectBase.cpp:18
which is:
while (token->start < end)
It could be either: token
, token->end
or token->start
that is not initialized.
Unfortunately, it's not easy for me to run Valgrind, because I'm using Visual Studio for the tests.
Maybe it's time for me to move to GCC and gtest...
from arduinojson.
I had a closer look and it appears that the "tokens" member variable in JsonParser.h is not initialised at all.
I think maybe it should be zeroed in the constructor or else it will be undefined when you try to read past the end of the last token.
from arduinojson.
Writing zeros in the array, just for the sake of it would be a complete waste.
But if there is really a bug, we should be able to write a unit test and fix it.
tokens
should be initialized by jsmn_parse()
, but maybe some of them are not.
Can you try with the latest version of jsmn?
Do you know which EXPECT_
line triggers this error?
I guess it could be the last one, because the key doesn't exists.
from arduinojson.
Yup it is the last EXPECT in that test.
I'll try out the latest version of Jsmn tomorrow (if we are not already using it).
from arduinojson.
Good!
I'm going to write a unit test.
There must be a sleeping bug here.
from arduinojson.
I can confirm that it is token->start that is uninitialised, it was a large negative number when I stepped through the code.
from arduinojson.
I refactored getNestedTokenCount()
.
I pushed a fix into the master branch, please give it a try.
from arduinojson.
I can confirm that this bug has been fixed. Thanks :)
from arduinojson.
Related Issues (20)
- Filtering large arrays of objects HOT 4
- deserializeJson from HTTP result in EmptyInput error HOT 3
- best way to create a sub document HOT 6
- Callback-based filter HOT 1
- Adding entry in JsonObject using File object causes corrupted JSON HOT 1
- Initial serializing HOT 7
- `doc[var]` doesn't work when `var` contains a string
- JsonArray.add(JsonObject) adds partial JsonObject when the JsonDocument is full HOT 6
- ArduinoJson.h: No such file or directory HOT 3
- JsonVariant tests false for both a value that doesn't exist and for a value that is zero HOT 7
- How do i create JSON array of objects using ArduinoJson library. HOT 1
- Identifying JsonVariant type of a deserialized document HOT 4
- Example code results in compiler error: no match for 'operator+=' HOT 3
- Passing JsonDocument by reference HOT 4
- In Memory Deserialization HOT 4
- v7 equivalent of validateJson HOT 2
- conversion from ‘ArduinoJson::V704HB42::detail::enable_if<true, ArduinoJson::V704HB42::JsonVariantConst>::type’ {aka ‘ArduinoJson::V704HB42::JsonVariantConst’} to ‘ArduinoJson::V704HB42::JsonDocument’ is ambiguous HOT 1
- Assertion `poolIndex < count_' failed HOT 1
- Maximum string length of 13 characters HOT 2
- V6 Documentation ArduinoJson PubSubClient with StreamUtils HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from arduinojson.