diff --git a/src/config_file.c b/src/config_file.c index 1eae8b9ac..4ca842b89 100644 --- a/src/config_file.c +++ b/src/config_file.c @@ -924,7 +924,7 @@ static int strip_comments(char *line, int in_quotes) } /* skip any space at the end */ - if (git__isspace(ptr[-1])) { + if (ptr > line && git__isspace(ptr[-1])) { ptr--; } ptr[0] = '\0'; @@ -1398,7 +1398,7 @@ static int parse_variable(diskfile_backend *cfg, char **var_name, char **var_val value_start = var_end + 1; do var_end--; - while (git__isspace(*var_end)); + while (var_end>line && git__isspace(*var_end)); *var_name = git__strndup(line, var_end - line + 1); GITERR_CHECK_ALLOC(*var_name); diff --git a/tests-clar/resources/config/config11 b/tests-clar/resources/config/config11 index 880c94589..7331862a5 100644 --- a/tests-clar/resources/config/config11 +++ b/tests-clar/resources/config/config11 @@ -1,3 +1,5 @@ [remote "fancy"] url = git://github.com/libgit2/libgit2 url = git://git.example.com/libgit2 + +