From 8e832a771d3ab6a852cd976a0264271be231c1b4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Petr=20=C5=A0tetiar?= Date: Sat, 23 Nov 2019 22:48:25 +0100 Subject: [PATCH] jshn: fix off by one in jshn_parse_file MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Fixes following error: Invalid read of size 1 at 0x4C32D04: strlen by 0x5043367: json_tokener_parse_ex by 0x5045316: json_tokener_parse_verbose by 0x504537D: json_tokener_parse by 0x401AB1: jshn_parse (jshn.c:179) by 0x40190D: jshn_parse_file (jshn.c:370) by 0x40190D: main (jshn.c:434) Address 0x5848c4c is 0 bytes after a block of size 1,036 alloc'd at 0x4C2FB0F: malloc by 0x4018E2: jshn_parse_file (jshn.c:357) by 0x4018E2: main (jshn.c:434) Signed-off-by: Petr Štetiar --- jshn.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/jshn.c b/jshn.c index 9639951..28cfa8d 100644 --- a/jshn.c +++ b/jshn.c @@ -354,7 +354,7 @@ static int jshn_parse_file(const char *path) return 3; } - if (!(fbuf = malloc(sb.st_size))) { + if (!(fbuf = calloc(1, sb.st_size+1))) { fprintf(stderr, "Error allocating memory for %s\n", path); close(fd); return 3;