summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMarc <34656315+MarcT512@users.noreply.github.com>2020-08-07 10:49:45 +0100
committerGitHub <noreply@github.com>2020-08-07 10:49:45 +0100
commit4e9e44e5258dee7654f74948b0dd5da39c28beec (patch)
treebc59f1974f24fbcc05de86384276ed14561d911d
parent730e3d044f2ac2e44e38bf67ac31c19925428d15 (diff)
downloadjson-c-4e9e44e5258dee7654f74948b0dd5da39c28beec.tar.gz
Fix read past end of buffer
Resolves https://github.com/json-c/json-c/issues/654
-rw-r--r--apps/json_parse.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/apps/json_parse.c b/apps/json_parse.c
index bba4622..72b31a8 100644
--- a/apps/json_parse.c
+++ b/apps/json_parse.c
@@ -82,7 +82,8 @@ static int parseit(int fd, int (*callback)(struct json_object *))
int parse_end = json_tokener_get_parse_end(tok);
if (obj == NULL && jerr != json_tokener_continue)
{
- char *aterr = &buf[start_pos + parse_end];
+ char *aterr = (start_pos + parse_end < sizeof(buf)) ?
+ &buf[start_pos + parse_end] : "";
fflush(stdout);
int fail_offset = total_read - ret + start_pos + parse_end;
fprintf(stderr, "Failed at offset %d: %s %c\n", fail_offset,