diff --git a/src/commit.c b/src/commit.c index 0ee3854c4..ced457ecc 100644 --- a/src/commit.c +++ b/src/commit.c @@ -221,10 +221,10 @@ int git_commit__parse_buffer(git_commit *commit, const void *data, size_t len) } /* parse commit message */ - while (buffer < buffer_end && *buffer == '\n') + while (buffer < buffer_end - 1 && *buffer == '\n') buffer++; - if (buffer < buffer_end) { + if (buffer <= buffer_end) { commit->message = git__strndup(buffer, buffer_end - buffer); if (!commit->message) return GIT_ENOMEM; diff --git a/tests/resources/testrepo.git/objects/36/97d64be941a53d4ae8f6a271e4e3fa56b022cc b/tests/resources/testrepo.git/objects/36/97d64be941a53d4ae8f6a271e4e3fa56b022cc new file mode 100644 index 000000000..9bb5b623b Binary files /dev/null and b/tests/resources/testrepo.git/objects/36/97d64be941a53d4ae8f6a271e4e3fa56b022cc differ diff --git a/tests/resources/testrepo.git/objects/94/4c0f6e4dfa41595e6eb3ceecdb14f50fe18162 b/tests/resources/testrepo.git/objects/94/4c0f6e4dfa41595e6eb3ceecdb14f50fe18162 new file mode 100644 index 000000000..4cc3f4dff Binary files /dev/null and b/tests/resources/testrepo.git/objects/94/4c0f6e4dfa41595e6eb3ceecdb14f50fe18162 differ diff --git a/tests/resources/testrepo.git/objects/a6/5fedf39aefe402d3bb6e24df4d4f5fe4547750 b/tests/resources/testrepo.git/objects/a6/5fedf39aefe402d3bb6e24df4d4f5fe4547750 new file mode 100644 index 000000000..29c8e824d Binary files /dev/null and b/tests/resources/testrepo.git/objects/a6/5fedf39aefe402d3bb6e24df4d4f5fe4547750 differ diff --git a/tests/resources/testrepo.git/refs/heads/master b/tests/resources/testrepo.git/refs/heads/master index 9536ad89c..3d8f0a402 100644 Binary files a/tests/resources/testrepo.git/refs/heads/master and b/tests/resources/testrepo.git/refs/heads/master differ diff --git a/tests/t04-commit.c b/tests/t04-commit.c index 88c7efd81..58d24bf73 100644 --- a/tests/t04-commit.c +++ b/tests/t04-commit.c @@ -560,6 +560,7 @@ static const char *commit_ids[] = { "c47800c7266a2be04c571c04d5a6614691ea99bd", /* 3 */ "8496071c1b46c854b31185ea97743be6a8774479", /* 4 */ "5b5b025afb0b4c913b4c338a42934a3863bf3644", /* 5 */ + "a65fedf39aefe402d3bb6e24df4d4f5fe4547750", /* 6 */ }; BEGIN_TEST(details0, "query the details on a parsed commit") @@ -594,6 +595,7 @@ BEGIN_TEST(details0, "query the details on a parsed commit") must_be_true(strcmp(author->email, "schacon@gmail.com") == 0); must_be_true(strcmp(committer->name, "Scott Chacon") == 0); must_be_true(strcmp(committer->email, "schacon@gmail.com") == 0); + must_be_true(message != NULL); must_be_true(strchr(message, '\n') != NULL); must_be_true(commit_time > 0); must_be_true(parents <= 2); diff --git a/tests/t10-refs.c b/tests/t10-refs.c index 67034155d..1b3e0a3aa 100644 --- a/tests/t10-refs.c +++ b/tests/t10-refs.c @@ -70,7 +70,7 @@ END_TEST static const char *head_tracker_sym_ref_name = "head-tracker"; static const char *current_head_target = "refs/heads/master"; -static const char *current_master_tip = "be3563ae3f795b2b4353bcce3a527ad0a4f7f644"; +static const char *current_master_tip = "a65fedf39aefe402d3bb6e24df4d4f5fe4547750"; BEGIN_TEST(readsym0, "lookup a symbolic reference") git_repository *repo;