commit 1d56642a3adb78558e7f94432b3203f7a9225139
parent ec29539cb426d1ae6a6c8e454f54a80769a45d9e
Author: Chris Bracken <chris@bracken.jp>
Date: Tue, 17 Feb 2026 17:49:01 +0900
commit: make message an owned copy
Diffstat:
1 file changed, 4 insertions(+), 2 deletions(-)
diff --git a/src/git/commit.c b/src/git/commit.c
@@ -17,7 +17,7 @@ struct GitCommit {
char* oid;
char* parentoid;
char* summary;
- const char* message;
+ char* message;
time_t commit_time;
int commit_timezone_offset;
const char* author_name;
@@ -51,7 +51,8 @@ GitCommit* gitcommit_create(const git_oid* oid, git_repository* repo) {
// Set commit summary, message.
const char* summary = git_commit_summary(commit->commit);
commit->summary = summary ? estrdup(summary) : NULL;
- commit->message = git_commit_message(commit->commit);
+ const char* message = git_commit_message(commit->commit);
+ commit->message = message ? estrdup(message) : NULL;
// Get commit time, tz offset.
commit->commit_time = git_commit_time(commit->commit);
@@ -140,6 +141,7 @@ void gitcommit_free(GitCommit* commit) {
free(commit->oid);
free(commit->parentoid);
free(commit->summary);
+ free(commit->message);
for (size_t i = 0; i < commit->deltas_len; i++) {
gitdelta_free(commit->deltas[i]);
commit->deltas[i] = NULL;