From da82f08055a74f2736b779893f9c970b5e862695 Mon Sep 17 00:00:00 2001 From: Valentine Krasnobaeva Date: Thu, 8 Aug 2024 16:34:54 +0200 Subject: [PATCH] MINOR: cfgparse: load_cfg_in_mem: fix null ptr dereference reported by coverity This helps to optimize a bit load_cfg_in_mem() and fixes the potential null ptr dereference in fread() call. If (read_bytes + bytes_to_read) equals to initial chunk_size (zero), realloc is never called, *cfg_content keeps its NULL value. So, let's assure that initial number of bytes to read (read_bytes + bytes_to_read) is stricly positive, when we enter into loop at the first time. --- src/cfgparse.c | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/src/cfgparse.c b/src/cfgparse.c index 24c22f9cc..bf43b02fd 100644 --- a/src/cfgparse.c +++ b/src/cfgparse.c @@ -1771,10 +1771,9 @@ ssize_t load_cfg_in_mem(char *filename, char **cfg_content) return -1; } - if (file_stat.st_size) { - /* as we need to read EOF to have feof(f)=1 */ - bytes_to_read = file_stat.st_size + 1; - } + if (file_stat.st_size > chunk_size) + bytes_to_read = file_stat.st_size; + if ((f = fopen(filename,"r")) == NULL) { ha_alert("Could not open configuration file %s : %s\n",