Re: [PATCHv6 1/4] Read (but not write) from $XDG_CONFIG_HOME/git/config file
On Fri, Jun 8, 2012 at 2:54 PM, <nguyenhu@minatec.inpg.fr> wrote:
Show 48 quoted lines
>
> Erik Faye-Lund <kusmabite@gmail.com> a écrit :
>
>
>>> char *mkpathdup(const char *fmt, ...)
>>> {
>>> char *path;
>>> struct strbuf sb = STRBUF_INIT;
>>> va_list args;
>>>
>>> va_start(args, fmt);
>>> strbuf_vaddf(&sb, fmt, args);
>>> va_end(args);
>>> path = sb.buf;
>>>
>>> strbuf_release(&sb);
>>> return xstrdup(cleanup_path(path));
>>>
>>> }
>>
>>
>> No, strbuf_release(&sb) frees 'sb.buf', causing 'path' to point to
>> unallocated memory. You can fix that by doing something along these
>> lines on top:
>>
>> va_end(args);
>> - path = sb.buf;
>> + path = xstrdup(cleanup_path(path));
>>
>> strbuf_release(&sb);
>> - return xstrdup(cleanup_path(path));
>> + return path;
>> }
>
>
> You are right, but I think you rather mean this, no?
>
>
> va_end(args);
> - path = sb.buf;
> + path = xstrdup(cleanup_path(sb.buf));
>
>
> strbuf_release(&sb);
> - return xstrdup(cleanup_path(path));
> + return path;
> }
>Yes, sorry for the fat fingers :)