From: Junio C Hamano Date: Thu, 15 Dec 2011 18:46:32 GMT Subject: Re: [PATCH 3/3] Do not create commits whose message contains NUL Message-ID: <7vehw5oepj.fsf@alter.siamese.dyndns.org> In-Reply-To: <20111214182953.GA6469@sigill.intra.peff.net> Jeff King writes: > I'm happy to ignore custom programs linking against internal git code, > but what should "git commit-tree" do? > > My gut feeling is that it should store the literal binary contents. > However, I don't think this has ever been the case. Even in the initial > version of commit-tree.c, we read the input line-by-line and sprintf it > into place. Yeah, you are right. Perhaps we should tweak updated 3/3 to check at the lower level commit_tree() then. I've rewrote the log message for 2/3 as follows so we can go either way ;-) Convert commit_tree() to take strbuf as message There wan't a way for commit_tree() to notice if the message the caller prepared contained a NUL byte, as it did not take the length of the message as a parameter. Use a pointer to a strbuf instead, so that we can either choose to allow low-level plumbing commands to make commits that contain NUL byte in its message, or forbid NUL everywhere by adding the check in commit_tree(), in later patches. Signed-off-by: Nguyễn Thái Ngọc Duy Signed-off-by: Junio C Hamano