Browse Source

config_set_multivar(): disallow newlines in keys

This will no longer work:

$ git repo-config 'key.with
newline' some-value

Signed-off-by: Johannes Schindelin <Johannes.Schindelin@gmx.de>
maint
Johannes Schindelin 18 years ago committed by Junio C Hamano
parent
commit
6f71686e0b
  1. 5
      config.c
  2. 6
      t/t1300-repo-config.sh

5
config.c

@ -661,6 +661,11 @@ int git_config_set_multivar(const char* key, const char* value, @@ -661,6 +661,11 @@ int git_config_set_multivar(const char* key, const char* value,
goto out_free;
}
c = tolower(c);
} else if (c == '\n') {
fprintf(stderr, "invalid key (newline): %s\n", key);
free(store.key);
ret = 1;
goto out_free;
}
store.key[i] = c;
}

6
t/t1300-repo-config.sh

@ -418,5 +418,11 @@ EOF @@ -418,5 +418,11 @@ EOF

test_expect_success 'quoting' 'cmp .git/config expect'

test_expect_failure 'key with newline' 'git repo-config key.with\\\
newline 123'

test_expect_success 'value with newline' 'git repo-config key.sub value.with\\\
newline'

test_done


Loading…
Cancel
Save