diff options
author | Johannes Schindelin <Johannes.Schindelin@gmx.de> | 2007-01-20 02:25:37 +0100 |
---|---|---|
committer | Junio C Hamano <junkio@cox.net> | 2007-01-19 17:55:14 -0800 |
commit | 6f71686e0bac2337cdaf9057893a16a47e7d1033 (patch) | |
tree | 06fd7a1341f2544fe0011bb4c24989bc2209e626 | |
parent | d23842fd53e61f32c189a6ec902c4133abf29878 (diff) | |
download | git-6f71686e0bac2337cdaf9057893a16a47e7d1033.tar.gz git-6f71686e0bac2337cdaf9057893a16a47e7d1033.tar.xz |
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>
-rw-r--r-- | config.c | 5 | ||||
-rwxr-xr-x | t/t1300-repo-config.sh | 6 |
2 files changed, 11 insertions, 0 deletions
@@ -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; } diff --git a/t/t1300-repo-config.sh b/t/t1300-repo-config.sh index 60acdd368..eb7455ba2 100755 --- a/t/t1300-repo-config.sh +++ b/t/t1300-repo-config.sh @@ -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 |