Jeff King <p...@peff.net> writes:

> This function allocate a packed_git flex-array, and adds a

s/allocate/&s/, right?

> mysterious 2 bytes to the length of the pack_name field. One
> is for the trailing NUL, but the other has no purpose. This
> is probably cargo-culted from add_packed_git, which gets the
> ".idx" path and needed to allocate enough space to hold the
> matching ".pack" (though since 48bcc1c, we calculate the
> size there differently).
>
> This site, however, is using the raw path of a tempfile, and
> does not need the extra byte. We can just replace the
> allocation with FLEX_ALLOC_STR, which handles the allocation
> and the NUL for us.
>
> Signed-off-by: Jeff King <p...@peff.net>
> ---
>  fast-import.c | 5 +----
>  1 file changed, 1 insertion(+), 4 deletions(-)
>
> diff --git a/fast-import.c b/fast-import.c
> index 3053bb8..9fc7093 100644
> --- a/fast-import.c
> +++ b/fast-import.c
> @@ -865,15 +865,12 @@ static void start_packfile(void)
>  {
>       static char tmp_file[PATH_MAX];
>       struct packed_git *p;
> -     int namelen;
>       struct pack_header hdr;
>       int pack_fd;
>  
>       pack_fd = odb_mkstemp(tmp_file, sizeof(tmp_file),
>                             "pack/tmp_pack_XXXXXX");
> -     namelen = strlen(tmp_file) + 2;
> -     p = xcalloc(1, sizeof(*p) + namelen);
> -     xsnprintf(p->pack_name, namelen, "%s", tmp_file);
> +     FLEX_ALLOC_STR(p, pack_name, tmp_file);
>       p->pack_fd = pack_fd;
>       p->do_not_close = 1;
>       pack_file = sha1fd(pack_fd, p->pack_name);
--
To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to