Re: [PATCH 1/3] prune-packed: fix a possible buffer overflow

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Wed, Dec 18, 2013 at 1:43 AM, Junio C Hamano <gitster@xxxxxxxxx> wrote:
> Duy Nguyen <pclouds@xxxxxxxxx> writes:
>
>> Why don't we take this opportunity to replace that array with a
>> strbuf? The conversion looks simple with this function.
>
> Indeed.  Something like this, perhaps?

Yes, looking good.

>  void prune_packed_objects(int opts)
>  {
>         int i;
> -       static char pathname[PATH_MAX];
>         const char *dir = get_object_directory();
> -       int len = strlen(dir);
> +       struct strbuf pathname = STRBUF_INIT;
> +       int top_len;
>
> +       strbuf_addstr(&pathname, dir);
>         if (opts & PRUNE_PACKED_VERBOSE)
>                 progress = start_progress_delay("Removing duplicate objects",
>                         256, 95, 2);
>
> -       if (len > PATH_MAX - 42)
> -               die("impossible object directory");
> -       memcpy(pathname, dir, len);
> -       if (len && pathname[len-1] != '/')
> -               pathname[len++] = '/';
> +       if (pathname.len && pathname.buf[pathname.len - 1] != '/')
> +               strbuf_addch(&pathname, '/');

I see this pattern (add a trailing slash) in a few places too. Maybe
we could make a wrapper for it.
-- 
Duy
--
To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html




[Index of Archives]     [Linux Kernel Development]     [Gcc Help]     [IETF Annouce]     [DCCP]     [Netdev]     [Networking]     [Security]     [V4L]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux SCSI]     [Fedora Users]