mirror of
https://github.com/git/git.git
synced 2025-12-12 20:36:24 +01:00
Merge branch 'jt/fsck-skiplist-parse-fix'
A misconfigured "fsck.skiplist" configuration variable was not diagnosed as an error, which has been corrected. * jt/fsck-skiplist-parse-fix: fsck: reject misconfigured fsck.skipList
This commit is contained in:
@@ -174,7 +174,7 @@ static int receive_pack_config(const char *var, const char *value,
|
||||
char *path;
|
||||
|
||||
if (git_config_pathname(&path, var, value))
|
||||
return 1;
|
||||
return -1;
|
||||
strbuf_addf(&fsck_msg_types, "%cskiplist=%s",
|
||||
fsck_msg_types.len ? ',' : '=', path);
|
||||
free(path);
|
||||
|
||||
@@ -1867,7 +1867,7 @@ int fetch_pack_fsck_config(const char *var, const char *value,
|
||||
char *path ;
|
||||
|
||||
if (git_config_pathname(&path, var, value))
|
||||
return 0;
|
||||
return -1;
|
||||
strbuf_addf(msg_types, "%cskiplist=%s",
|
||||
msg_types->len ? ',' : '=', path);
|
||||
free(path);
|
||||
|
||||
2
fsck.c
2
fsck.c
@@ -1353,7 +1353,7 @@ int git_fsck_config(const char *var, const char *value,
|
||||
struct strbuf sb = STRBUF_INIT;
|
||||
|
||||
if (git_config_pathname(&path, var, value))
|
||||
return 1;
|
||||
return -1;
|
||||
strbuf_addf(&sb, "skiplist=%s", path);
|
||||
free(path);
|
||||
fsck_set_msg_types(options, sb.buf);
|
||||
|
||||
@@ -167,6 +167,8 @@ test_expect_success 'fsck with unsorted skipList' '
|
||||
|
||||
test_expect_success 'fsck with invalid or bogus skipList input' '
|
||||
git -c fsck.skipList=/dev/null -c fsck.missingEmail=ignore fsck &&
|
||||
test_must_fail git -c fsck.skipList -c fsck.missingEmail=ignore fsck 2>err &&
|
||||
test_grep "unable to parse '\'fsck.skiplist\'' from command-line config" err &&
|
||||
test_must_fail git -c fsck.skipList=does-not-exist -c fsck.missingEmail=ignore fsck 2>err &&
|
||||
test_grep "could not open.*: does-not-exist" err &&
|
||||
test_must_fail git -c fsck.skipList=.git/config -c fsck.missingEmail=ignore fsck 2>err &&
|
||||
@@ -213,6 +215,11 @@ test_expect_success 'fsck with exhaustive accepted skipList input (various types
|
||||
test_must_be_empty err
|
||||
'
|
||||
|
||||
test_expect_success 'receive-pack with missing receive.fsck.skipList path' '
|
||||
test_must_fail git -c receive.fsck.skipList receive-pack dst 2>err &&
|
||||
test_grep "unable to parse '\'receive.fsck.skiplist\'' from command-line config" err
|
||||
'
|
||||
|
||||
test_expect_success 'push with receive.fsck.skipList' '
|
||||
git push . $commit:refs/heads/bogus &&
|
||||
rm -rf dst &&
|
||||
@@ -255,6 +262,9 @@ test_expect_success 'fetch with fetch.fsck.skipList' '
|
||||
test_must_fail git --git-dir=dst/.git fetch "file://$(pwd)" $refspec &&
|
||||
|
||||
# Invalid and/or bogus skipList input
|
||||
test_must_fail git --git-dir=dst/.git -c fetch.fsck.skipList fetch \
|
||||
"file://$(pwd)" $refspec 2>err &&
|
||||
test_grep "unable to parse '\'fetch.fsck.skiplist\'' from command-line config" err &&
|
||||
git --git-dir=dst/.git config fetch.fsck.skipList /dev/null &&
|
||||
test_must_fail git --git-dir=dst/.git fetch "file://$(pwd)" $refspec &&
|
||||
git --git-dir=dst/.git config fetch.fsck.skipList does-not-exist &&
|
||||
|
||||
Reference in New Issue
Block a user