From: Amaury Denoyelle Date: Fri, 17 May 2024 12:50:12 +0000 (+0200) Subject: BUILD: stats: remove non portable getline() usage X-Git-Tag: v3.0-dev12~25 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=fbc3d46b9f8bdc21f1a9ff3fc5a5c7d42ecb7e21;p=thirdparty%2Fhaproxy.git BUILD: stats: remove non portable getline() usage getline() was used to read stats-file. However, this function is not portable and may cause build issue on some systems. Replace it by standard fgets(). No need to backport. --- diff --git a/src/stats-file.c b/src/stats-file.c index 76168919db..1a77e3182b 100644 --- a/src/stats-file.c +++ b/src/stats-file.c @@ -351,8 +351,6 @@ void apply_stats_file(void) FILE *file; struct ist istline; char *line = NULL; - ssize_t len; - size_t alloc_len; int linenum; if (!global.stats_file) @@ -370,15 +368,20 @@ void apply_stats_file(void) goto out; } + line = malloc(sizeof(char) * LINESIZE); + if (!line) { + ha_warning("config: Can't load stats file: line alloc error.\n"); + goto out; + } + linenum = 0; domain = STFILE_DOMAIN_UNSET; while (1) { - len = getline(&line, &alloc_len, file); - if (len < 0) + if (!fgets(line, LINESIZE, file)) break; ++linenum; - istline = iststrip(ist2(line, len)); + istline = iststrip(ist(line)); if (!istlen(istline)) continue;