Skip to content

Commit f7567ea

Browse files
authored
Merge pull request #3015 from mgreter/bugfix/3014-mem-leak-in-permutate
Fix possible memory leak in permutation function
2 parents e820c83 + 0537dd2 commit f7567ea

File tree

1 file changed

+7
-3
lines changed

1 file changed

+7
-3
lines changed

src/permutate.hpp

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -22,14 +22,18 @@ namespace Sass {
2222
const std::vector<std::vector<T>>& in)
2323
{
2424

25-
size_t L = in.size();
26-
size_t n = 0;
25+
size_t L = in.size(), n = 0;
26+
27+
// Exit early if any entry is empty
28+
for (size_t i = 0; i < L; i += 1) {
29+
if (in[i].size() == 0) return {};
30+
}
31+
2732
size_t* state = new size_t[L + 1];
2833
std::vector<std::vector<T>> out;
2934

3035
// First initialize all states for every permutation group
3136
for (size_t i = 0; i < L; i += 1) {
32-
if (in[i].size() == 0) return {};
3337
state[i] = in[i].size() - 1;
3438
}
3539
while (true) {

0 commit comments

Comments
 (0)