This website works better with JavaScript.
Home
Issues
Pull Requests
Milestones
AI流水线
Repositories
Datasets
Forum
实训
竞赛
大数据
Register
Sign In
jdk-build-libs
/
json-c
Not watched
Unwatch
Watch all
Watch but not notify
1
Star
0
Fork
0
Code
Releases
11
Wiki
evaluate
Activity
Issues
0
Pull Requests
0
Datasets
Model
Cloudbrain
HPC
Browse Source
Issue
#407
: fix incorrect casts in calls to ctype functions (isdigit and isspace) so we don't crash when asserts are enabled on certain platforms and characters > 128 are parsed.
tags/json-c-0.14-20200419
Eric Haszlakiewicz
7 years ago
parent
da4b34355d
commit
f8c632f579
3 changed files
with
4 additions
and
4 deletions
Split View
Diff Options
Show Stats
Download Patch File
Download Diff File
+1
-1
json_object.c
+2
-2
json_pointer.c
+1
-1
json_tokener.c
+ 1
- 1
json_object.c
View File
@@ -838,7 +838,7 @@ static int json_object_double_to_json_string_format(struct json_object* jso,
format_drops_decimals = 1;
if (size < (int)sizeof(buf) - 2 &&
isdigit((
int
)buf[0]) && /* Looks like *some* kind of number */
isdigit((
unsigned char
)buf[0]) && /* Looks like *some* kind of number */
!p && /* Has no decimal point */
strchr(buf, 'e') == NULL && /* Not scientific notation */
format_drops_decimals)
+ 2
- 2
json_pointer.c
View File
@@ -44,7 +44,7 @@ static int is_valid_index(struct json_object *jo, const char *path, int32_t *idx
/* this code-path optimizes a bit, for when we reference the 0-9 index range in a JSON array
and because leading zeros not allowed */
if (len == 1) {
if (isdigit((
int
)path[0])) {
if (isdigit((
unsigned char
)path[0])) {
*idx = (path[0] - '0');
goto check_oob;
}
@@ -58,7 +58,7 @@ static int is_valid_index(struct json_object *jo, const char *path, int32_t *idx
}
/* RFC states base-10 decimals */
for (i = 0; i < len; i++) {
if (!isdigit((
int
)path[i])) {
if (!isdigit((
unsigned char
)path[i])) {
errno = EINVAL;
return 0;
}
+ 1
- 1
json_tokener.c
View File
@@ -295,7 +295,7 @@ struct json_object* json_tokener_parse_ex(struct json_tokener *tok,
case json_tokener_state_eatws:
/* Advance until we change state */
while (isspace((
int
)c)) {
while (isspace((
unsigned char
)c)) {
if ((!ADVANCE_CHAR(str, tok)) || (!PEEK_CHAR(c, tok)))
goto out;
}
Write
Preview
Loading…
Cancel
Save