From 3585c6d03007cedfc1537e86ca2931f5893f20cb Mon Sep 17 00:00:00 2001 From: Sean Turley Date: Fri, 25 Oct 2013 15:18:35 -0400 Subject: [PATCH] Check ferror if fread call fails in json_parse_file --- parson.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/parson.c b/parson.c index 54eae2c..b273ba1 100644 --- a/parson.c +++ b/parson.c @@ -500,7 +500,9 @@ JSON_Value * json_parse_file(const char *filename) { rewind(fp); file_contents = (char*)parson_malloc(sizeof(char) * (file_size + 1)); if (!file_contents) { fclose(fp); return NULL; } - if (fread(file_contents, file_size, 1, fp) < 1) { fclose(fp); return NULL; } + if (fread(file_contents, file_size, 1, fp) < 1) { + if (ferror(fp)) { fclose(fp); return NULL; } + } fclose(fp); file_contents[file_size] = '\0'; output_value = json_parse_string(file_contents);