config.c:store_write_pair(): don't read the byte before a malloc'd buffer.

Signed-off-by: Jim Meyering <meyering@redhat.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
Jim Meyering 2007-12-08 16:48:05 +01:00 коммит произвёл Junio C Hamano
Родитель 8e7425da78
Коммит 6281f39467
1 изменённых файлов: 8 добавлений и 2 удалений

Просмотреть файл

@ -630,13 +630,19 @@ static int store_write_pair(int fd, const char* key, const char* value)
int length = strlen(key+store.baselen+1); int length = strlen(key+store.baselen+1);
int quote = 0; 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] == ' ') if (value[0] == ' ')
quote = 1; quote = 1;
for (i = 0; value[i]; i++) for (i = 0; value[i]; i++)
if (value[i] == ';' || value[i] == '#') if (value[i] == ';' || value[i] == '#')
quote = 1; quote = 1;
if (value[i-1] == ' ') if (i && value[i-1] == ' ')
quote = 1; quote = 1;
if (write_in_full(fd, "\t", 1) != 1 || if (write_in_full(fd, "\t", 1) != 1 ||