Browse Source

setup: fix safe.directory key not being checked

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>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
maint
Matheus Valadares 3 years ago committed by Junio C Hamano
parent
commit
bb50ec3cc3
  1. 3
      setup.c
  2. 5
      t/t0033-safe-directory.sh

3
setup.c

@ -1034,6 +1034,9 @@ static int safe_directory_cb(const char *key, const char *value, void *d)
{ {
struct safe_directory_data *data = d; struct safe_directory_data *data = d;


if (strcmp(key, "safe.directory"))
return 0;

if (!value || !*value) if (!value || !*value)
data->is_safe = 0; data->is_safe = 0;
else { else {

5
t/t0033-safe-directory.sh

@ -21,6 +21,11 @@ test_expect_success 'safe.directory does not match' '
expect_rejected_dir 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' ' test_expect_success 'safe.directory matches' '
git config --global --add safe.directory "$(pwd)" && git config --global --add safe.directory "$(pwd)" &&
git status git status

Loading…
Cancel
Save