]> git.ipfire.org Git - thirdparty/git.git/commitdiff
unpack-file: fix ancient leak in create_temp_file()
authorÆvar Arnfjörð Bjarmason <avarab@gmail.com>
Tue, 8 Nov 2022 18:17:43 +0000 (19:17 +0100)
committerJunio C Hamano <gitster@pobox.com>
Mon, 21 Nov 2022 03:32:48 +0000 (12:32 +0900)
Fix a leak that's been with us since 3407bb4940c (Add "unpack-file"
helper that unpacks a sha1 blob into a tmpfile., 2005-04-18). See
00c8fd493af (cat-file: use streaming API to print blobs, 2012-03-07)
for prior art which shows the same API pattern, i.e. free()-ing the
result of read_object_file() after it's used.

Signed-off-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com>
Signed-off-by: Taylor Blau <me@ttaylorr.com>
builtin/unpack-file.c
t/t6060-merge-index.sh
t/t6401-merge-criss-cross.sh
t/t6406-merge-attr.sh
t/t6407-merge-binary.sh
t/t7605-merge-resolve.sh

index 9e8119dd35422a93c63dbe23f840bda5ec69c5e5..88de32b7d7e66e3d7e1c57775b5f0a1b0b045175 100644 (file)
@@ -19,6 +19,7 @@ static char *create_temp_file(struct object_id *oid)
        if (write_in_full(fd, buf, size) < 0)
                die_errno("unable to write temp-file");
        close(fd);
+       free(buf);
        return path;
 }
 
index ed449abe5520e59ddb0ad27def5711007f620650..1a8b64cce18239284a28260734a0348f95a2d7b6 100755 (executable)
@@ -1,6 +1,8 @@
 #!/bin/sh
 
 test_description='basic git merge-index / git-merge-one-file tests'
+
+TEST_PASSES_SANITIZE_LEAK=true
 . ./test-lib.sh
 
 test_expect_success 'setup diverging branches' '
index 9d5e992878fad10f20c404a0dd676261345b2973..1962310408b12209aef235b9d6e09b8049de5f60 100755 (executable)
@@ -8,6 +8,8 @@
 
 
 test_description='Test criss-cross merge'
+
+TEST_PASSES_SANITIZE_LEAK=true
 . ./test-lib.sh
 
 test_expect_success 'prepare repository' '
index 8650a88c40a2a58182ee39f36cdc59315ae1a35c..5e4e4dd6d9e6b967f8c1d94fe7ce1a79c787a177 100755 (executable)
@@ -8,6 +8,7 @@ test_description='per path merge controlled by merge attribute'
 GIT_TEST_DEFAULT_INITIAL_BRANCH_NAME=main
 export GIT_TEST_DEFAULT_INITIAL_BRANCH_NAME
 
+TEST_PASSES_SANITIZE_LEAK=true
 . ./test-lib.sh
 
 test_expect_success setup '
index e8a28717cece3248c2d9996e797dcfdb9af128eb..0753fc95f45efb642543f9f23191d3430d4d6cde 100755 (executable)
@@ -5,6 +5,7 @@ test_description='ask merge-recursive to merge binary files'
 GIT_TEST_DEFAULT_INITIAL_BRANCH_NAME=main
 export GIT_TEST_DEFAULT_INITIAL_BRANCH_NAME
 
+TEST_PASSES_SANITIZE_LEAK=true
 . ./test-lib.sh
 
 test_expect_success setup '
index 5d56c3854647b2f2bc2fdf4221b1f76f5d0b0629..62d935d31c2e1dc9cbca3779407b6b86bc5ce4c5 100755 (executable)
@@ -4,6 +4,7 @@ test_description='git merge
 
 Testing the resolve strategy.'
 
+TEST_PASSES_SANITIZE_LEAK=true
 . ./test-lib.sh
 
 test_expect_success 'setup' '