Commit 1ba48b7caf8e2de010b8c0038860b90be0692274

Vicent Marti 2014-11-21T17:19:41

notes: Do not assume blob contents are NULL-terminated

diff --git a/src/notes.c b/src/notes.c
index 046a916..9b0d4d5 100644
--- a/src/notes.c
+++ b/src/notes.c
@@ -313,6 +313,7 @@ static int note_new(
 	git_blob *blob)
 {
 	git_note *note = NULL;
+	git_buf note_contents = GIT_BUF_INIT;
 
 	note = (git_note *)git__malloc(sizeof(git_note));
 	GITERR_CHECK_ALLOC(note);
@@ -323,11 +324,10 @@ static int note_new(
 		git_signature_dup(&note->committer, git_commit_committer(commit)) < 0)
 		return -1;
 
-	note->message = git__strdup((char *)git_blob_rawcontent(blob));
-	GITERR_CHECK_ALLOC(note->message);
+	git_buf_put(&note_contents, git_blob_rawcontent(blob), git_blob_rawsize(blob));
+	note->message = git_buf_detach(&note_contents);
 
 	*out = note;
-
 	return 0;
 }