Browse Source

Merge branch 'ab/hash-object-leakfix'

Trivial leakfix.

* ab/hash-object-leakfix:
  hash-object: fix a trivial leak in --path
maint
Junio C Hamano 3 years ago
parent
commit
09320a8af1
  1. 9
      builtin/hash-object.c
  2. 1
      t/t1007-hash-object.sh

9
builtin/hash-object.c

@ -92,6 +92,7 @@ int cmd_hash_object(int argc, const char **argv, const char *prefix) @@ -92,6 +92,7 @@ int cmd_hash_object(int argc, const char **argv, const char *prefix)
int nongit = 0;
unsigned flags = HASH_FORMAT_CHECK;
const char *vpath = NULL;
char *vpath_free = NULL;
const struct option hash_object_options[] = {
OPT_STRING('t', NULL, &type, N_("type"), N_("object type")),
OPT_BIT('w', NULL, &flags, N_("write the object into the object database"),
@ -114,8 +115,10 @@ int cmd_hash_object(int argc, const char **argv, const char *prefix) @@ -114,8 +115,10 @@ int cmd_hash_object(int argc, const char **argv, const char *prefix)
else
prefix = setup_git_directory_gently(&nongit);

if (vpath && prefix)
vpath = prefix_filename(prefix, vpath);
if (vpath && prefix) {
vpath_free = prefix_filename(prefix, vpath);
vpath = vpath_free;
}

git_config(git_default_config, NULL);

@ -156,5 +159,7 @@ int cmd_hash_object(int argc, const char **argv, const char *prefix) @@ -156,5 +159,7 @@ int cmd_hash_object(int argc, const char **argv, const char *prefix)
if (stdin_paths)
hash_stdin_paths(type, no_filters, flags, literally);

free(vpath_free);

return 0;
}

1
t/t1007-hash-object.sh

@ -2,6 +2,7 @@ @@ -2,6 +2,7 @@

test_description="git hash-object"

TEST_PASSES_SANITIZE_LEAK=true
. ./test-lib.sh

echo_without_newline() {

Loading…
Cancel
Save