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.
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",