[pseudo][PATCH v2 16/23] pseudo_util: Avoid accidental free calls for without_libpseudo()
Mark Hatle <[email protected]> Fri, 3 Jul 2026 13:40:48 -0500
| Newsgroups | org.yoctoproject.lists.yocto-patches |
|---|---|
| Message-ID | <1783104055-19005-17-git-send-email-mark.hatle@kernel.crashing.org> |
From: Richard Purdie <[email protected]> We need to return list after the strdup otherwise the caller doesn't know whether to free the return value or not. Signed-off-by: Richard Purdie <[email protected]> Message-ID: <[email protected]> Signed-off-by: Mark Hatle <[email protected]> --- pseudo_util.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pseudo_util.c b/pseudo_util.c index 3eaa9e6..66afe25 100644 --- a/pseudo_util.c +++ b/pseudo_util.c @@ -346,13 +346,13 @@ without_libpseudo(char *list) { if (list[0] == '=' || list[0] == PSEUDO_LINKPATH_SEPARATOR[0]) skip_start = 1; - if ((*real_regexec)(&libpseudo_regex, list, 1, pmatch, 0)) { - return list; - } list = strdup(list); if (!list) { pseudo_error("Couldn't allocate memory to remove libpseudo from environment.\n"); } + if ((*real_regexec)(&libpseudo_regex, list, 1, pmatch, 0)) { + return list; + } while (list && !(*real_regexec)(&libpseudo_regex, list, 1, pmatch, 0)) { char *start = list + pmatch[0].rm_so; char *end = list + pmatch[0].rm_eo; -- 1.8.3.1