Browse Source

fsck: call fsck_finish() after fscking objects

Now that the internal fsck code is capable of checking
.gitmodules files, we just need to teach its callers to use
the "finish" function to check any queued objects.

With this, we can now catch the malicious case in t7415 with
git-fsck.

Signed-off-by: Jeff King <peff@peff.net>
maint
Jeff King 7 years ago
parent
commit
1995b5e03e
  1. 3
      builtin/fsck.c
  2. 4
      t/t7415-submodule-names.sh

3
builtin/fsck.c

@ -748,6 +748,9 @@ int cmd_fsck(int argc, const char **argv, const char *prefix) @@ -748,6 +748,9 @@ int cmd_fsck(int argc, const char **argv, const char *prefix)
}
stop_progress(&progress);
}

if (fsck_finish(&fsck_obj_options))
errors_found |= ERROR_OBJECT;
}

for (i = 0; i < argc; i++) {

4
t/t7415-submodule-names.sh

@ -73,4 +73,8 @@ test_expect_success 'clone evil superproject' ' @@ -73,4 +73,8 @@ test_expect_success 'clone evil superproject' '
! grep "RUNNING POST CHECKOUT" output
'

test_expect_success 'fsck detects evil superproject' '
test_must_fail git fsck
'

test_done

Loading…
Cancel
Save