@@ -336,13 +336,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_diag("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;
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 <richard.purdie@linuxfoundation.org> --- pseudo_util.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-)