Stats
json-c/json-c is an open source project licensed under GNU General Public License v3.0 or later which is an OSI approved license.
Json-c Alternatives
Similar projects and alternatives to json-c
-
-
-
Scout APM
Scout APM - Leading-edge performance monitoring starting at $39/month. Scout APM uses tracing logic that ties bottlenecks to source code so you know the exact line of code causing performance issues and can get back to building a great product faster.
-
-
-
-
-
Posts
- I suck at writing programs using functions. Any resources?
- Linus Torvalds on where Rust will fit into Linux
-
How a Bad Random Number Generator Froze Sway (2020)
It seems json-c uses a random number generator to get a seed that it then uses for string hashing. This is one way of protecting yourself against hash denial-of-service attacks.
https://github.com/json-c/json-c/blob/df27756491abf9ecce648c...
> [...] there's no guarantee that RDRAND won't revert to the -1 behavior after the check runs, perhaps after a VM migration or resume from suspend or what-not.
Author here. This is true and is an issue with some CPUs (breaking RDRAND after resume), but every call to RDRAND is guarded[1] by a check that it works.
[1]: https://github.com/json-c/json-c/blob/041cef434afe0d0c6da8b6...
-
Parsing can become accidentally quadratic because of sscanf
I found this while making a collection of what C implementation does what at https://news.ycombinator.com/item?id=26298300 .
There are two basic implementation strategies. The BSD (FreeBSD and OpenBSD and more than likely NetBSD too), Microsoft, GNU, and MUSL C libraries use one, and suffer from this; whereas the OpenWatcom, P.J. Plauger, Tru64 Unix, and my standard C libraries use another, and do not.
The 2002 report in the comp.lang.c Usenet newsgroup (listed in that discussion) is the earliest that I've found so far.
There have been several assertions that library support for strings in C++ is poor. However, note that the fix here was to switch from the Standard C library function sscanf() to a C++ library.
* https://github.com/fastfloat
One might advocate using other people's libraries, on the grounds that they will have got such things right. However, note that this is RapidYAML, and the bug got fixed several years after GTA Online was released. Other third-party parsing libraries have suffered from being layered on top of sscanf() in other ways.
* https://github.com/json-c/json-c/issues/173
* https://github.com/kgabis/parson/commit/96150ba1fd7f3398aa6a...