diff options
author | Junio C Hamano <gitster@pobox.com> | 2007-12-09 00:56:44 -0800 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2007-12-09 00:56:44 -0800 |
commit | 9b433e44964202befd175f1f28687067b8bd058f (patch) | |
tree | 07ae65c46c2a8fe8b3e83b5a4134fa5ca1d19f18 /config.c | |
parent | 774751a8bc594a5b56039bbdc43c45e3882dd804 (diff) | |
parent | 6281f394674bf2db861967da6c2215cfc3fc78af (diff) | |
download | git-9b433e44964202befd175f1f28687067b8bd058f.tar.gz |
Merge branch 'maint'
* maint:
config.c:store_write_pair(): don't read the byte before a malloc'd buffer.
Diffstat (limited to 'config.c')
-rw-r--r-- | config.c | 10 |
1 files changed, 8 insertions, 2 deletions
@@ -646,13 +646,19 @@ static int store_write_pair(int fd, const char* key, const char* value) int length = strlen(key+store.baselen+1); int quote = 0; - /* Check to see if the value needs to be quoted. */ + /* + * Check to see if the value needs to be surrounded with a dq pair. + * Note that problematic characters are always backslash-quoted; this + * check is about not losing leading or trailing SP and strings that + * follow beginning-of-comment characters (i.e. ';' and '#') by the + * configuration parser. + */ if (value[0] == ' ') quote = 1; for (i = 0; value[i]; i++) if (value[i] == ';' || value[i] == '#') quote = 1; - if (value[i-1] == ' ') + if (i && value[i-1] == ' ') quote = 1; if (write_in_full(fd, "\t", 1) != 1 || |