diff --git a/include/nlohmann/detail/view/builder.hpp b/include/nlohmann/detail/view/builder.hpp index 11187a947..eb3d70792 100644 --- a/include/nlohmann/detail/view/builder.hpp +++ b/include/nlohmann/detail/view/builder.hpp @@ -415,8 +415,10 @@ class builder arena_ensure(16); std::memcpy(m_arena_write, r, 16); } - else + else if (n != 0) { + // (an empty run leaves an empty arena unallocated, and memcpy() + // must not be passed its null pointer even for zero bytes) arena_ensure(n); std::memcpy(m_arena_write, r, n); } diff --git a/single_include/nlohmann/json_view.hpp b/single_include/nlohmann/json_view.hpp index 26e30cbbb..0de60773b 100644 --- a/single_include/nlohmann/json_view.hpp +++ b/single_include/nlohmann/json_view.hpp @@ -1039,8 +1039,10 @@ class builder arena_ensure(16); std::memcpy(m_arena_write, r, 16); } - else + else if (n != 0) { + // (an empty run leaves an empty arena unallocated, and memcpy() + // must not be passed its null pointer even for zero bytes) arena_ensure(n); std::memcpy(m_arena_write, r, n); }