From fbc3d46b9f8bdc21f1a9ff3fc5a5c7d42ecb7e21 Mon Sep 17 00:00:00 2001 From: Amaury Denoyelle Date: Fri, 17 May 2024 14:50:12 +0200 Subject: [PATCH] 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. --- src/stats-file.c | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/src/stats-file.c b/src/stats-file.c index 76168919d..1a77e3182 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;