From: Zbigniew Jędrzejewski-Szmek Date: Tue, 19 Mar 2024 19:47:12 +0000 (+0100) Subject: basic/string-util: use strdup_to() in string_extract_line() X-Git-Tag: v256-rc1~459^2~12 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=f174b294f64281b57bf1634cf2140fe3ca22d1cb;p=thirdparty%2Fsystemd.git basic/string-util: use strdup_to() in string_extract_line() --- diff --git a/src/basic/string-util.c b/src/basic/string-util.c index 6e8d10747b6..7f6c87b4613 100644 --- a/src/basic/string-util.c +++ b/src/basic/string-util.c @@ -1253,36 +1253,15 @@ int string_extract_line(const char *s, size_t i, char **ret) { return -ENOMEM; *ret = m; - return !isempty(q + 1); /* more coming? */ - } else { - if (p == s) - *ret = NULL; /* Just use the input string */ - else { - char *m; - - m = strdup(p); - if (!m) - return -ENOMEM; - - *ret = m; - } - - return 0; /* The end */ - } + return !isempty(q + 1); /* More coming? */ + } else + /* Tell the caller to use the input string if equal */ + return strdup_to(ret, p != s ? p : NULL); } - if (!q) { - char *m; - + if (!q) /* No more lines, return empty line */ - - m = strdup(""); - if (!m) - return -ENOMEM; - - *ret = m; - return 0; /* The end */ - } + return strdup_to(ret, ""); p = q + 1; c++;