From: Junio C Hamano Date: Sun, 10 Jun 2012 06:41:39 GMT Subject: Re: [PATCHv6 1/4] Read (but not write) from $XDG_CONFIG_HOME/git/config file Message-ID: <7v4nqjbrdo.fsf@alter.siamese.dyndns.org> In-Reply-To: <20120609125336.Horde.iUq0R3wdC4BP0yswpGlGBZA@webmail.minatec.grenoble-inp.fr> nguyenhu@minatec.inpg.fr writes: >> Modulo >> >> path = strbuf_detach(&sb, NULL); >> >> that is more or less what I meant. > > So now the mkpathdup() function looks like: > > 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 = strbuf_detach(&sb, NULL); > > strbuf_release(&sb); > return path; > } > > This new variation of mkpathdup() function both fix the bug addressed > by commit 05bab3ea and avoid the use of bounded buffer. I didn't mean to suggest removing the call to clean-up-path function. What I meant was that strbuf_detach() is a way to take the ownership of the buffer, so that you do not have to call strbuf_release() on it.