Return false in Reader::readValue when stack limit is exceeded #1619
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
jsoncpp, as a shared library, should not call
abort
merely because there's an error reading a value.See https://en.cppreference.com/w/c/program/abort,
abort
should only be called to abnormally cause the program to exit. Functions inserted byatexit
are also not called, meaning that the host program may have not cleaned up resources properly. But here, exceeding stack limit isn't a sign of abnormalty.exit
is not a good substitute either, see theexit-in-shared-library
from Debian: https://lintian.debian.org/tags/exit-in-shared-library.htmlFix #1618
In this case, returning false seems like a better idea.