diff options
author | Luke Shumaker <lukeshu@datawire.io> | 2025-03-10 16:57:45 +0100 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2025-03-10 13:24:56 -0700 |
commit | dda9bff3c55e45ee8dbfb49fd972c4b35fd4ba7e (patch) | |
tree | e79b3aa3dac8976ce194aa44fe3befdb3f0e81c9 /builtin/commit-tree.c | |
parent | 87f2a9195e7bea721d9cffe98383b4065d233f66 (diff) |
fast-export: do not modify memory from get_commit_buffer
fast-export's helper function find_encoding() takes a `const char *`, but
modifies that memory despite the `const`. Ultimately, this memory came
from get_commit_buffer(), and you're not supposed to modify the memory
that you get from get_commit_buffer().
So, get rid of find_encoding() in favor of commit.h:find_commit_header(),
which gives back a string length, rather than mutating the memory to
insert a '\0' terminator.
Because find_commit_header() detects the "\n\n" string that separates the
headers and the commit message, move the call to be above the
`message = strstr(..., "\n\n")` call. This helps readability, and allows
for the value of `encoding` to be used for a better value of "..." so that
the same memory doesn't need to be checked twice. Introduce a
`commit_buffer_cursor` variable to avoid writing an awkward
`encoding ? encoding + encoding_len : committer_end` expression.
Signed-off-by: Luke Shumaker <lukeshu@datawire.io>
Signed-off-by: Christian Couder <chriscool@tuxfamily.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Diffstat (limited to 'builtin/commit-tree.c')
0 files changed, 0 insertions, 0 deletions