diff --git a/parser/variable.cc b/parser/variable.cc index 686b85720..b0deb4097 100644 --- a/parser/variable.cc +++ b/parser/variable.cc @@ -211,8 +211,6 @@ int variable::expand_by_alternation(char **name) return 0; /* no var found, name is unchanged */ } - free(*name); - if (!prefix.empty() && prefix[prefix.size() - 1] == '/') { /* make sure to not collapse / in the beginning of the path */ std::size_t found = prefix.find_first_not_of('/'); @@ -228,6 +226,8 @@ int variable::expand_by_alternation(char **name) return 1; } + free(*name); + size_t setsize = ref->expanded.size(); auto i = ref->expanded.begin();