File libgit2-init-commit-message.patch of Package libgit2.9827

commit a719ef5e6d4a1a8ec53469c7914032ed67922772
Author: Patrick Steinhardt <ps@pks.im>
Date:   Fri Oct 7 09:31:41 2016 +0200

    commit: always initialize commit message
    
    When parsing a commit, we will treat all bytes left after parsing
    the headers as the commit message. When no bytes are left, we
    leave the commit's message uninitialized. While uncommon to have
    a commit without message, this is the right behavior as Git
    unfortunately allows for empty commit messages.
    
    Given that this scenario is so uncommon, most programs acting on
    the commit message will never check if the message is actually
    set, which may lead to errors. To work around the error and not
    lay the burden of checking for empty commit messages to the
    developer, initialize the commit message with an empty string
    when no commit message is given.

diff --git a/src/commit.c b/src/commit.c
index 99a8085..76e6dcb 100644
--- a/src/commit.c
+++ b/src/commit.c
@@ -459,10 +459,11 @@ int git_commit__parse(void *_commit, git_odb_object *odb_obj)
 	buffer = buffer_start + header_len + 1;
 
 	/* extract commit message */
-	if (buffer <= buffer_end) {
+	if (buffer <= buffer_end)
 		commit->raw_message = git__strndup(buffer, buffer_end - buffer);
-		GITERR_CHECK_ALLOC(commit->raw_message);
-	}
+	else
+		commit->raw_message = git__strdup("");
+	GITERR_CHECK_ALLOC(commit->raw_message);
 
 	return 0;
openSUSE Build Service is sponsored by