From 94b75cdb06aae1e5fe91f5846dbed5781f8d5ecb Mon Sep 17 00:00:00 2001 From: =?utf8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= Date: Tue, 19 Mar 2024 18:29:40 +0100 Subject: [PATCH] basic/fileio: use strdup_to_full() in read_stripped_line() The return value of read_stripped_line() is changed. Before we'd return the number of characters read, but that number was not meaningful after we called strstrip(). So just return 0 if nothing was read (EOF), and 1 if something was read (not EOF). All the callers were only checking for <0 or ==0. --- src/basic/fileio.c | 18 ++++++------------ 1 file changed, 6 insertions(+), 12 deletions(-) diff --git a/src/basic/fileio.c b/src/basic/fileio.c index 3aadb4bfab9..523378177fb 100644 --- a/src/basic/fileio.c +++ b/src/basic/fileio.c @@ -1504,7 +1504,7 @@ int read_line_full(FILE *f, size_t limit, ReadLineFlags flags, char **ret) { int read_stripped_line(FILE *f, size_t limit, char **ret) { _cleanup_free_ char *s = NULL; - int r; + int r, k; assert(f); @@ -1513,23 +1513,17 @@ int read_stripped_line(FILE *f, size_t limit, char **ret) { return r; if (ret) { - const char *p; - - p = strstrip(s); + const char *p = strstrip(s); if (p == s) *ret = TAKE_PTR(s); else { - char *copy; - - copy = strdup(p); - if (!copy) - return -ENOMEM; - - *ret = copy; + k = strdup_to(ret, p); + if (k < 0) + return k; } } - return r; + return r > 0; /* Return 1 if something was read. */ } int safe_fgetc(FILE *f, char *ret) { -- 2.47.3