From: Johannes Schindelin Date: Sat, 20 Jan 2007 01:25:37 +0000 (+0100) Subject: config_set_multivar(): disallow newlines in keys X-Git-Tag: v1.5.0-rc2~21 X-Git-Url: http://git.tremily.us/?a=commitdiff_plain;h=6f71686e0bac2337cdaf9057893a16a47e7d1033;p=git.git 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 --- diff --git a/config.c b/config.c index b6082f597..c08c66890 100644 --- a/config.c +++ b/config.c @@ -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