From: Valentine Krasnobaeva Date: Thu, 8 Aug 2024 14:34:54 +0000 (+0200) Subject: MINOR: cfgparse: load_cfg_in_mem: fix null ptr dereference reported by coverity X-Git-Tag: v3.1-dev6~61 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=da82f08055a74f2736b779893f9c970b5e862695;p=thirdparty%2Fhaproxy.git 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. --- diff --git a/src/cfgparse.c b/src/cfgparse.c index 24c22f9cc4..bf43b02fd1 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",