mirror of
https://git.proxmox.com/git/libgit2
synced 2025-08-03 07:05:46 +00:00
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.
This commit is contained in:
parent
4974e3a596
commit
a719ef5e6d
@ -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;
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user