X-Git-Url: https://git.tokkee.org/?a=blobdiff_plain;f=commit.c;h=35af4988f0ff83c6a3379ea9f6de4e4e1568c39f;hb=b5c9f1c1b0ed9c91463b9f46a7c9dff3efc53773;hp=2162a7c5724c1dcdd42b249c11d1995e66abcd6f;hpb=c871a1d17b8433d98df59b03da5538f10c4ae52c;p=git.git diff --git a/commit.c b/commit.c index 2162a7c57..35af4988f 100644 --- a/commit.c +++ b/commit.c @@ -1072,7 +1072,7 @@ void free_commit_extra_headers(struct commit_extra_header *extra) } } -int commit_tree(const char *msg, unsigned char *tree, +int commit_tree(const struct strbuf *msg, unsigned char *tree, struct commit_list *parents, unsigned char *ret, const char *author, const char *sign_commit) { @@ -1091,7 +1091,7 @@ static const char commit_utf8_warn[] = "You may want to amend it after fixing the message, or set the config\n" "variable i18n.commitencoding to the encoding your project uses.\n"; -int commit_tree_extended(const char *msg, unsigned char *tree, +int commit_tree_extended(const struct strbuf *msg, unsigned char *tree, struct commit_list *parents, unsigned char *ret, const char *author, const char *sign_commit, struct commit_extra_header *extra) @@ -1102,6 +1102,9 @@ int commit_tree_extended(const char *msg, unsigned char *tree, assert_sha1_type(tree, OBJ_TREE); + if (memchr(msg->buf, '\0', msg->len)) + return error("a NUL byte in commit log message not allowed."); + /* Not having i18n.commitencoding is the same as having utf-8 */ encoding_is_utf8 = is_encoding_utf8(git_commit_encoding); @@ -1138,7 +1141,7 @@ int commit_tree_extended(const char *msg, unsigned char *tree, strbuf_addch(&buffer, '\n'); /* And add the comment */ - strbuf_addstr(&buffer, msg); + strbuf_addbuf(&buffer, msg); /* And check the encoding */ if (encoding_is_utf8 && !is_utf8(buffer.buf))