login
Header Space

 
 

[PATCH] config_set_multivar(): disallow newlines in keys

Score:
Previous message: [thread] [date] [author]
Next message: [thread] [date] [author]
To: Junio C Hamano <junkio@...>
Cc: <git@...>
Date: Friday, January 19, 2007 - 9:25 pm

This will no longer work:

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

Signed-off-by: Johannes Schindelin <Johannes.Schindelin@gmx.de>
---
	On Fri, 19 Jan 2007, Junio C Hamano wrote:
	
	> I think the current repo-config handles sane cases alright, but
	> it is still fragile in error cases.  For example:
	> 
	> 	$ git repo-config 'foo.bar=bzz
	>           baz.boo' foobar
	> 
	> does not currently barf, but results in a corrupted config file.

	Now it barfs.

 config.c               |    5 +++++
 t/t1300-repo-config.sh |    6 ++++++
 2 files changed, 11 insertions(+), 0 deletions(-)

diff --git a/config.c b/config.c
index b6082f5..c08c668 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 60acdd3..eb7455b 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
 
-- 
1.5.0.rc1.g5a400-dirty

-
To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Previous message: [thread] [date] [author]
Next message: [thread] [date] [author]

Messages in current thread:
[RFC] Git config file reader in Perl (WIP), Jakub Narebski, (Sun Jan 14, 8:44 pm)
Re: [RFC] Git config file reader in Perl (WIP), Eric Wong, (Mon Jan 15, 3:08 am)
Re: [RFC] Git config file reader in Perl (WIP), Jakub Narebski, (Mon Jan 15, 5:03 am)
Re: [RFC] Git config file reader in Perl (WIP), Eric Wong, (Mon Jan 15, 5:56 am)
Re: [RFC] Git config file reader in Perl (WIP), Jakub Narebski, (Mon Jan 15, 6:32 am)
Re: [RFC] Git config file reader in Perl (WIP), Eric Wong, (Mon Jan 15, 7:26 am)
Re: [RFC] Git config file reader in Perl (WIP), Johannes Schindelin, (Mon Jan 15, 8:15 am)
Re: [RFC] Git config file reader in Perl (WIP), Eric Wong, (Tue Jan 16, 5:51 am)
Re: [RFC] Git config file reader in Perl (WIP), Johannes Schindelin, (Tue Jan 16, 6:47 am)
Re: [RFC] Git config file reader in Perl (WIP), Eric Wong, (Tue Jan 16, 3:53 pm)
Re: [RFC] Git config file reader in Perl (WIP), Nikolai Weibull, (Mon Jan 15, 11:34 am)
Re: [RFC] Git config file reader in Perl (WIP), Junio C Hamano, (Tue Jan 16, 6:45 am)
Re: [RFC] Git config file reader in Perl (WIP), Johannes Schindelin, (Tue Jan 16, 7:12 am)
Re: [RFC] Git config file reader in Perl (WIP), Eric Wong, (Tue Jan 16, 3:09 pm)
Re: [RFC] Git config file reader in Perl (WIP), Jakub Narebski, (Tue Jan 16, 10:14 am)
Re: [RFC] Git config file reader in Perl (WIP), Nikolai Weibull, (Tue Jan 16, 6:17 pm)
Re: [RFC] Git config file reader in Perl (WIP), Johannes Schindelin, (Tue Jan 16, 6:42 pm)
Re: [RFC] Git config file reader in Perl (WIP), Nikolai Weibull, (Wed Jan 17, 2:08 pm)
Re: [RFC] Git config file reader in Perl (WIP), Johannes Schindelin, (Wed Jan 17, 8:50 pm)
Re: [RFC] Git config file reader in Perl (WIP), Jakub Narebski, (Wed Jan 17, 3:25 pm)
Re: [RFC] Git config file reader in Perl (WIP), Jakub Narebski, (Wed Jan 17, 3:22 pm)
Re: [RFC] Git config file reader in Perl (WIP), Nikolai Weibull, (Wed Jan 17, 4:01 pm)
Re: [RFC] Git config file reader in Perl (WIP), Jakub Narebski, (Tue Jan 16, 6:37 pm)
Re: [RFC] Git config file reader in Perl (WIP), Johannes Schindelin, (Tue Jan 16, 6:56 pm)
Re: [RFC] Git config file reader in Perl (WIP), Jakub Narebski, (Tue Jan 16, 7:24 pm)
Re: [RFC] Git config file reader in Perl (WIP), Johannes Schindelin, (Wed Jan 17, 4:51 am)
Re: [RFC] Git config file reader in Perl (WIP), Jakub Narebski, (Wed Jan 17, 5:48 am)
Re: [RFC] Git config file reader in Perl (WIP), Johannes Schindelin, (Wed Jan 17, 6:44 am)
Re: [RFC] Git config file reader in Perl (WIP), Jakub Narebski, (Wed Jan 17, 8:11 am)
Re: [RFC] Git config file reader in Perl (WIP), Johannes Schindelin, (Wed Jan 17, 8:37 am)
Re: [RFC] Git config file reader in Perl (WIP), Jakub Narebski, (Wed Jan 17, 10:00 am)
Re: [RFC] Git config file reader in Perl (WIP), Jakub Narebski, (Fri Jan 19, 8:10 am)
Re: [RFC] Git config file reader in Perl (WIP), Johannes Schindelin, (Fri Jan 19, 9:20 am)
Re: [RFC] Git config file reader in Perl (WIP), Jakub Narebski, (Fri Jan 19, 6:44 pm)
Re: [RFC] Git config file reader in Perl (WIP), Junio C Hamano, (Fri Jan 19, 8:19 pm)
[PATCH] config_set_multivar(): disallow newlines in keys, Johannes Schindelin, (Fri Jan 19, 9:25 pm)
Re: [PATCH] config_set_multivar(): disallow newlines in keys, Johannes Schindelin, (Mon Jan 22, 11:21 am)
Re: [PATCH] config_set_multivar(): disallow newlines in keys, Johannes Schindelin, (Mon Jan 22, 11:44 am)
Re: [PATCH] config_set_multivar(): disallow newlines in keys, Johannes Schindelin, (Tue Jan 23, 7:26 am)
Re: [RFC] Git config file reader in Perl (WIP), Johannes Schindelin, (Fri Jan 19, 8:08 pm)
Re: [RFC] Git config file reader in Perl (WIP), Jakub Narebski, (Fri Jan 19, 8:59 pm)
Re: [RFC] Git config file reader in Perl (WIP), Jakub Narebski, (Fri Jan 19, 8:25 am)
Re: [RFC] Git config file reader in Perl (WIP), Jakub Narebski, (Mon Jan 15, 12:00 pm)
Re: [RFC] Git config file reader in Perl (WIP), Johannes Schindelin, (Mon Jan 15, 11:44 am)
Re: [RFC] Git config file reader in Perl (WIP), Nikolai Weibull, (Mon Jan 15, 12:22 pm)
Re: [RFC] Git config file reader in Perl (WIP), Shawn O. Pearce, (Mon Jan 15, 6:01 am)
speck-geostationary