Re: [PATCH 3/3] Do not create commits whose message contains NUL
From: Junio C Hamano <hidden>
Date: 2016-06-15 22:52:39
Jeff King [off-list ref] 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 [off-list ref]
Signed-off-by: Junio C Hamano [off-list ref]