[PATCH 2/3] setup: fix safe.directory key not being checked
- From
- Matheus Valadares via GitGitGadget <gitgitgadget@gmail.com>
- Date
- Apr 13, 2022, 15:32 UTC
- Message-ID
- <8a06688c121195f21472e3e49efd2b034b1537fc.1649863951.git.gitgitgadget@gmail.com>
- In-Reply-To
- <pull.1215.git.1649863951.gitgitgadget@gmail.com>
From: Matheus Valadares <me@m28.io>
It seems that nothing is ever checking to make sure the safe directories in the configs actually have the key safe.directory, so some unrelated config that has a value with a certain directory would also make it a safe directory.
Signed-off-by: Matheus Valadares <me@m28.io> Signed-off-by: Derrick Stolee <derrickstolee@github.com> --- setup.c | 3 +++ t/t0033-safe-directory.sh | 5 +++++ 2 files changed, 8 insertions(+)
diff --git a/setup.c b/setup.c index f54f449008a..a995c359c32 100644 --- a/setup.c +++ b/setup.c @@ -1100,6 +1100,9 @@ static int safe_directory_cb(const char *key, const char *value, void *d) { struct safe_directory_data *data = d; + if (strcmp(key, "safe.directory")) + return 0; + if (!value || !*value) data->is_safe = 0; else { diff --git a/t/t0033-safe-directory.sh b/t/t0033-safe-directory.sh index 9380ff3d017..6f33c0dfefa 100755 --- a/t/t0033-safe-directory.sh +++ b/t/t0033-safe-directory.sh @@ -21,6 +21,11 @@ test_expect_success 'safe.directory does not match' ' expect_rejected_dir ' +test_expect_success 'path exist as different key' ' + git config --global foo.bar "$(pwd)" && + expect_rejected_dir +' + test_expect_success 'safe.directory matches' ' git config --global --add safe.directory "$(pwd)" && git status
-- gitgitgadget