Eric Haszlakiewicz
4d62de3898
Revert bogus change to json_object_get() made in f40b08d8
that caused it to always return NULL. (Issue #259 )
Also undo NULL check in json_tokener_set_flags(): it's not at all valid toi
try to set flags on a NULL pointer, and doing so should not be silently
ignored.
9 years ago
Nicola Spanti (RyDroid)
f40b08d8f0
Minor changes in C source code
9 years ago
Eric Haszlakiewicz
9688f343a5
Issue #246 : Include xlocale.h too, to get locale_t defined, since not all OSes include that in locale.h
9 years ago
Eric Haszlakiewicz
fa76e4a8c9
Issue #195 : Actually call uselocale() in the new locale handling code in json_tokener.
Also, be sure the right locale_t is freed if we fail on the second uselocale.
Finally, fix test_locale so it *doesn't* use json_object_to_json_string as
that will simple re-emit the original parsed string values.
9 years ago
Eric Haszlakiewicz
4091b9c87e
Issue #195 : use uselocale() instead of setlocale() in json_tokener to behave better in threaded environments.
9 years ago
Even Rouault
77a4276a8c
Fix various potential null ptr deref and int32 overflows
This fix errors that can happen when ingesting very large JSON files
when hitting the maximum heap size of the process.
9 years ago
Anmol Sarma
467102fa78
Remove superfluous NULL checks
10 years ago
Anmol Sarma
f37b0a10a5
Fix possible memory leak
10 years ago
James Myatt
9be71700eb
json_tokener requires INF and NAN
10 years ago
Eric Haszlakiewicz
68d856f618
Merge pull request #168 from bugness-chl/master
Tightening the number parsing algorithm
10 years ago
chl
99d8fc975e
Tightening the number parsing algorithm
Some badly formated "numbers" could get partly parsed,
resulting in truncated results instead of raising an
error.
Examples :
'1.2.3' -> (double)1.2
'2015-01-15' -> (int)2015
This patch is not perfect (ex: input can still end with a 'E', which
is forbidden by json.org doc) but should avoid non-sensically
formated input.
Tests added.
10 years ago
Michael Vetter
fcf5ad1bd6
Remove trailing whitespace
11 years ago
Eric Haszlakiewicz
d4e81f9ec8
Move the json_min() and json_max() macros to json_util.h and mark everything else in bits.h deprecated.
Eliminate all uses of bits.h within the json-c code.
11 years ago
Petar Koretić
259c5c0b5f
Remove unused variable 'size'
11 years ago
Michael Clark
64e36901a0
Patch to address the following issues:
* CVE-2013-6371: hash collision denial of service
* CVE-2013-6370: buffer overflow if size_t is larger than int
11 years ago
Eric Haszlakiewicz
f9136f6852
Make the json_tokener_errors array local. It has been deprecated for a while, and json_tokener_error_desc() should be used instead.
11 years ago
Eric Haszlakiewicz
05da316b9c
Issue #103 : allow Infinity and -Infinity to be parsed.
11 years ago
Markus Stenberg
a1c8991e13
nan function requires -lm on some platforms; use of NAN is better, if available.
11 years ago
Eric Haszlakiewicz
0eedf3802f
Issue#102 - add support for parsing "NaN".
11 years ago
Eric Haszlakiewicz
020fa65724
Merge pull request #112 from TazeTSchnitzel/LowercaseLiterals
Only allow lowercase literals in STRICT mode
11 years ago
Eric Haszlakiewicz
56df93d128
Fix Issue #111 : Fix off-by-one error when range checking the input to json_tokener_error_desc().
11 years ago
Andrea Faulds
bda0540cb9
Only allow lowercase literals in STRICT mode
12 years ago
Eric Haszlakiewicz
51993c28c2
Added a json_object_new_double_s() convenience function to allow an exact string representation of a double to be specified when creating the object and use it in json_tokener_parse_ex() so a re-serialized object more exactly matches the input.
Add json_object_free_userdata() and json_object_userdata_to_json_string() too.
12 years ago
Eric Haszlakiewicz
ef43fe3571
Merge pull request #96 from rouault/remove_strdnup
Remove redefinition of strndup() which is no longer used in the codebase
12 years ago
Eric Haszlakiewicz
02aa6f01f4
Merge pull request #94 from remicollet/issue-strict2
more strictness
12 years ago
Even Rouault
86dd55a74a
Fix potential out-of-bounds read in json_tokener_error_desc
Found by Coverity. The number of elements of an array 'ar' is found by
sizeof(ar)/sizeof(ar[0]) and not sizeof(ar)
76const char *json_tokener_error_desc(enum json_tokener_error jerr)
77{
78 int jerr_int = (int)jerr;
1. Condition "jerr_int < 0", taking false branch
2. Condition "jerr_int > 112 /* (int)sizeof (gdal_json_tokener_errors) */", taking false branch
79 if (jerr_int < 0 || jerr_int > (int)sizeof(json_tokener_errors))
80 return "Unknown error, invalid json_tokener_error value passed to json_tokener_error_desc()";
CID 1076806 (#1 of 1): Out-of-bounds read (OVERRUN)3. overrun-local: Overrunning array "gdal_json_tokener_errors" of 14 8-byte elements at element index 112 (byte offset 896) using index "jerr" (which evaluates to 112).
81 return json_tokener_errors[jerr];
82}
12 years ago
Remi Collet
4039f91cab
trailing char not allowed in strict mode
12 years ago
Remi Collet
87fa32dfe0
no comment in strict mode
12 years ago
Even Rouault
1a957c2edc
Remove redefinition of strndup() which is no longer used in the codebase
12 years ago
Remi Collet
a07ef3d197
no single-quote string in strict mode
12 years ago
Eric Haszlakiewicz
d032aad1f4
Minor spell check.
12 years ago
Remi Collet
e9ee4ae18a
in strick mode, number must not start with 0
12 years ago
Eric Haszlakiewicz
e8161a11bb
Issue #15 : add a way to set a JSON_TOKENER_STRICT flag to forbid commas at the end of arrays and objects.
12 years ago
William Dignazio
32eddd66f5
Fix broken build by using ADVANCE_CHAR macro return.
We forget to check or use the return value of the ADVANCE_CHAR macro,
and upon compilation an error is thrown because of its lack of use. This
patch checks to see if the macro was successful, and if not replaces the
offending character with a replacement.
12 years ago
William Dignazio
bb492d4d69
Rename misnomer POP_CHAR to PEEK_CHAR.
While parsing token data, we use the POP_CHAR macro to 'peek' at
character data. This behaviour is noted in the comments for the macro,
yet the definition is left as 'pop'. Changing to PEEK_CHAR does not
imply that the character being observed is removed.
12 years ago
Eric Haszlakiewicz
5b36a432c8
Merge branch 'remicollet-issue-float'
Conflicts:
json_util.c
12 years ago
Eric Haszlakiewicz
ca8b27d183
Enable -Werror and fix a number of minor warnings that existed.
12 years ago
Eric Haszlakiewicz
56166e2dff
Merge pull request #51 from remicollet/issue-dyndepth
Make maximum recursion depth a runtime option
12 years ago
Remi Collet
a01b659ace
move locale change to be global for perf
12 years ago
Eric Haszlakiewicz
4e4af93d66
Fix issue #53 - ensure explicit length string are still NUL terminated, and fix json_tokener_parse() to work properly with embedded unicode \u0000 values in strings.
Adjust test_null to check for this case.
See also http://bugs.debian.org/687269
13 years ago
Remi Collet
16a4a32e29
float parsing must be locale independent
13 years ago
Remi Collet
197cb1d1c1
Make maximum recursion depth a runtime option
13 years ago
Eric Haszlakiewicz
92f31bd99a
Handle the \f escape sequence (the two characters: backslash followed by an f, not a literal formfeed) and extend the test_parse test to check all valid escape sequences.
13 years ago
Mateusz Loskot
a6f39a3c0c
Replaced #if HAVE_X with #ifdef HAVE_X as the former test is troublemaker with #define HAVE_X where #define HAVE_X 1|0 is meant.
13 years ago
Eric Haszlakiewicz
f931f61851
Fixed parsing numbers in E notation. `
13 years ago
Eric Haszlakiewicz
d809fa60c5
Fix a bug in json_tokener_parse_ex when re-using the same tokener to parse multiple objects. Now, json_tokener_reset() does not need to be called after a valid object is parsed.
13 years ago
Eric Haszlakiewicz
3620cba6d0
Perform better error checking in json_tokener_parse_verbose and rewrite json_tokener_parse to use that instead of json_tokener_parse_ex.
Fix a typo in the string represenations of the json_tokener_error_depth error (s/to deep/too deep/)
13 years ago
Eric Haszlakiewicz
2f9091f559
Add json_tokener_get_error() and json_tokener_error_desc() to better encapsulate the process of retrieving errors while parsing.
Add documentation for the json_tokener_parse_ex() function.
13 years ago
Frederik Deweerdt
db050901fa
json_tokener_parse(): avoid possible NULL deref
13 years ago
Jehiah Czebotar
a503ee8217
add json_tokener_parse_verbose, and return NULL on parser errors
git-svn-id: http://svn.metaparadigm.com/svn/json-c/trunk@62 327403b1-1117-474d-bef2-5cb71233fd97
15 years ago