From 6f71686e0bac2337cdaf9057893a16a47e7d1033 Mon Sep 17 00:00:00 2001 From: Johannes Schindelin Date: Sat, 20 Jan 2007 02:25:37 +0100 Subject: [PATCH] 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 --- config.c | 5 +++++ t/t1300-repo-config.sh | 6 ++++++ 2 files changed, 11 insertions(+) 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 -- 2.30.2