The git strbuf allows for each read to hint about the size of the string. In this case the the string can never be longer than 41 characters, as it cannot contain more than a single hex-sha1 and a newline.
So let's use 41 instead of 1024 to reduce the memory footprint.
Signed-off-by: Fredrik Gustafsson <iveqy@iveqy.com> Mentored-by: Jens Lehmann <Jens.Lehmann@web.de> Mentored-by: Heiko Voigt <hvoigt@hvoigt.net> --- submodule.c | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-)
Show changes to submodule.c +1 −1
diff --git a/submodule.c b/submodule.c index b6dec70..86baf42 100644 --- a/submodule.c +++ b/submodule.c @@ -326,7 +326,7 @@ static int is_submodule_commit_present(const char *path, unsigned char sha1[20]) cp.no_stdin = 1; cp.out = -1; cp.dir = path; - if (!run_command(&cp) && !strbuf_read(&buf, cp.out, 1024)) + if (!run_command(&cp) && !strbuf_read(&buf, cp.out, 41)) is_present = 1; close(cp.out);
-- 1.7.5.1.229.g455f