X-Git-Url: https://git.tokkee.org/?a=blobdiff_plain;f=commit.c;h=44bc96d44d391209d3a60e9e8c1b98ed209e6b4a;hb=896a681698489e7e21891076ce932a97468ca4c6;hp=b78127403be65f5c26e35e53a59b91860396194a;hpb=73c6b3575bc638b7096ec913bd91193707e2265d;p=git.git diff --git a/commit.c b/commit.c index b78127403..44bc96d44 100644 --- a/commit.c +++ b/commit.c @@ -973,7 +973,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) { @@ -991,7 +991,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, struct commit_extra_header *extra) { @@ -1001,6 +1001,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); @@ -1037,7 +1040,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))