diff options
author | Junio C Hamano <gitster@pobox.com> | 2021-09-23 20:44:49 (GMT) |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2021-09-23 20:44:49 (GMT) |
commit | 50eb005eb371723704024c656da60a2c37658945 (patch) | |
tree | f566eee43e7299119a16c311ad1abadc78d6c0e9 | |
parent | f7511fdfbd6dc249aca551d56fcb3011d85ddd08 (diff) | |
parent | 66c0c44df617446763845a71a8fe0fab4cb848a9 (diff) | |
download | git-50eb005eb371723704024c656da60a2c37658945.zip git-50eb005eb371723704024c656da60a2c37658945.tar.gz git-50eb005eb371723704024c656da60a2c37658945.tar.bz2 |
Merge branch 'cb/plug-leaks-in-alloca-emu-users'
Leakfix.
* cb/plug-leaks-in-alloca-emu-users:
t0000: avoid masking git exit value through pipes
tree-diff: fix leak when not HAVE_ALLOCA_H
-rwxr-xr-x | t/t0000-basic.sh | 23 | ||||
-rw-r--r-- | tree-diff.c | 4 |
2 files changed, 15 insertions, 12 deletions
diff --git a/t/t0000-basic.sh b/t/t0000-basic.sh index cb87768..5c342de 100755 --- a/t/t0000-basic.sh +++ b/t/t0000-basic.sh @@ -1271,28 +1271,29 @@ P=$(test_oid root) test_expect_success 'git commit-tree records the correct tree in a commit' ' commit0=$(echo NO | git commit-tree $P) && - tree=$(git show --pretty=raw $commit0 | - sed -n -e "s/^tree //p" -e "/^author /q") && + git show --pretty=raw $commit0 >out && + tree=$(sed -n -e "s/^tree //p" -e "/^author /q" out) && test "z$tree" = "z$P" ' test_expect_success 'git commit-tree records the correct parent in a commit' ' commit1=$(echo NO | git commit-tree $P -p $commit0) && - parent=$(git show --pretty=raw $commit1 | - sed -n -e "s/^parent //p" -e "/^author /q") && + git show --pretty=raw $commit1 >out && + parent=$(sed -n -e "s/^parent //p" -e "/^author /q" out) && test "z$commit0" = "z$parent" ' test_expect_success 'git commit-tree omits duplicated parent in a commit' ' commit2=$(echo NO | git commit-tree $P -p $commit0 -p $commit0) && - parent=$(git show --pretty=raw $commit2 | - sed -n -e "s/^parent //p" -e "/^author /q" | - sort -u) && + git show --pretty=raw $commit2 >out && + cat >match.sed <<-\EOF && + s/^parent //p + /^author /q + EOF + parent=$(sed -n -f match.sed out | sort -u) && test "z$commit0" = "z$parent" && - numparent=$(git show --pretty=raw $commit2 | - sed -n -e "s/^parent //p" -e "/^author /q" | - wc -l) && - test $numparent = 1 + git show --pretty=raw $commit2 >out && + test_stdout_line_count = 1 sed -n -f match.sed out ' test_expect_success 'update-index D/F conflict' ' diff --git a/tree-diff.c b/tree-diff.c index 1572615..437c98a 100644 --- a/tree-diff.c +++ b/tree-diff.c @@ -21,7 +21,9 @@ ALLOC_ARRAY((x), nr); \ } while(0) #define FAST_ARRAY_FREE(x, nr) do { \ - if ((nr) > 2) \ + if ((nr) <= 2) \ + xalloca_free((x)); \ + else \ free((x)); \ } while(0) |