diff options
| author | Patrick Steinhardt <ps@pks.im> | 2024-08-14 08:52:00 +0200 |
|---|---|---|
| committer | Junio C Hamano <gitster@pobox.com> | 2024-08-14 10:07:57 -0700 |
| commit | 9ddd5f755d78dd2a3119b63d5f78ca93e4fd3eba (patch) | |
| tree | 725b5cc5d4548a6b251771eeea06fb87be24e1c9 | |
| parent | object-file: fix memory leak when reading corrupted headers (diff) | |
| download | git-9ddd5f755d78dd2a3119b63d5f78ca93e4fd3eba.tar.gz git-9ddd5f755d78dd2a3119b63d5f78ca93e4fd3eba.zip | |
object-name: fix leaking symlink paths in object context
The object context may be populated with symlink contents when reading a
symlink, but the associated strbuf doesn't ever get released when
releasing the object context, causing a memory leak. Plug it.
Signed-off-by: Patrick Steinhardt <ps@pks.im>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
| -rw-r--r-- | object-name.c | 1 | ||||
| -rwxr-xr-x | t/t1006-cat-file.sh | 1 |
2 files changed, 2 insertions, 0 deletions
diff --git a/object-name.c b/object-name.c index 240a93e7ce..e39fa50e47 100644 --- a/object-name.c +++ b/object-name.c @@ -1765,6 +1765,7 @@ int strbuf_check_branch_ref(struct strbuf *sb, const char *name) void object_context_release(struct object_context *ctx) { free(ctx->path); + strbuf_release(&ctx->symlink_path); } /* diff --git a/t/t1006-cat-file.sh b/t/t1006-cat-file.sh index ff9bf213aa..d36cd7c086 100755 --- a/t/t1006-cat-file.sh +++ b/t/t1006-cat-file.sh @@ -2,6 +2,7 @@ test_description='git cat-file' +TEST_PASSES_SANITIZE_LEAK=true . ./test-lib.sh test_cmdmode_usage () { |
