Skip to content

Releases: bblanchon/ArduinoJson

ArduinoJson 7.4.3

02 Mar 17:23

Choose a tag to compare

Changes

  • Fix a buffer overrun in as<T>() when T is a numeric type and the variant contains a string representing a floating point number with a large number of digits (issue #2220)

Huge thanks to @xD0135 for reporting this long-standing security issue ❤️❤️❤️

View version history

ArduinoJson 7.3.2

02 Mar 18:40

Choose a tag to compare

Changes

  • Fix a buffer overrun in as<T>() when T is a numeric type and the variant contains a string representing a floating point number with a large number of digits (issue #2220)

Huge thanks to @xD0135 for reporting this long-standing security issue ❤️❤️❤️

View version history

ArduinoJson 7.2.2

02 Mar 18:45

Choose a tag to compare

Changes

  • Fix support for NUL characters in deserializeJson()
  • Fix a buffer overrun in as<T>() when T is a numeric type and the variant contains a string representing a floating point number with a large number of digits (issue #2220)

Huge thanks to @xD0135 for reporting this long-standing security issue ❤️❤️❤️

View version history

ArduinoJson 6.21.6

02 Mar 17:34

Choose a tag to compare

Changes

  • Improve error messages when using char or char* (issue #2043)
  • Make string support even more generic (PR #2084 by @d-a-v)
  • Fix a buffer overrun in as<T>() when T is a numeric type and the variant contains a string representing a floating point number with a large number of digits (issue #2220)

Huge thanks to @xD0135 for reporting this long-standing security issue ❤️❤️❤️

View version history

ArduinoJson 5.13.6

02 Mar 17:46

Choose a tag to compare

Changes

  • JsonObject::createNestedObject() returns JsonObject::invalid() if key is null (issue #1891)
  • JsonObject::createNestedArray() returns JsonArray::invalid() if key is null
  • Fix a buffer overrun in as<T>() when T is a numeric type and
    the variant contains a string representing a floating point number
    with a large number of digits (issue #2220)

Huge thanks to @xD0135 for reporting this long-standing security issue ❤️❤️❤️

View version history

ArduinoJson 7.4.2

20 Jun 07:37

Choose a tag to compare

Changes

  • Fix truncated strings on Arduino Due (issue #2181)

View version history

ArduinoJson 7.4.1

11 Apr 13:43

Choose a tag to compare

Changes

  • Fix crash with tiny Flash strings (issue #2170)

View version history

ArduinoJson 7.4.0

09 Apr 12:49

Choose a tag to compare

ℹ️ Read the blog post

Changes

  • Optimize storage of tiny strings (up to 3 characters)
  • Fix support for const char[] (issue #2166)

View version history

ArduinoJson 7.3.1

27 Feb 18:36

Choose a tag to compare

Changes

  • Fix conversion from static string to number
  • Slightly reduce code size

View version history

ArduinoJson 7.3.0

29 Dec 16:16

Choose a tag to compare

ℹ️ Read the blog post

Changes

  • Fix support for NUL characters in deserializeJson()
  • Make ElementProxy and MemberProxy non-copyable
  • Change string copy policy: only string literal are stored by pointer
  • JsonString is now stored by copy, unless specified otherwise
  • Replace undocumented JsonString::Ownership with bool
  • Rename undocumented JsonString::isLinked() to isStatic()
  • Move public facing SFINAEs to template declarations

BREAKING CHANGES

In previous versions, MemberProxy (the class returned by operator[]) could lead to dangling pointers when used with a temporary string.
To prevent this issue, MemberProxy and ElementProxy are now non-copyable.

Your code is likely to be affected if you use auto to store the result of operator[]. For example, the following line won't compile anymore:

auto value = doc["key"];

To fix the issue, you must append either .as<T>() or .to<T>(), depending on the situation.

For example, if you are extracting values from a JSON document, you should update like this:

- auto config = doc["config"];
+ auto config = doc["config"].as<JsonObject>();
const char* name = config["name"];

However, if you are building a JSON document, you should update like this:

- auto config = doc["config"];
+ auto config = doc["config"].to<JsonObject>();
config["name"] = "ArduinoJson";

View version history