On Fri, Aug 26, 2016 at 07:58:07PM +0000, Keller, Jacob E wrote: > > > char *git_pathdup_submodule(const char *path, const char *fmt, > > > ...) > > > { > > > + int err; > > > va_list args; > > > struct strbuf buf = STRBUF_INIT; > > > va_start(args, fmt); > > > - do_submodule_path(&buf, path, fmt, args); > > > + err = do_submodule_path(&buf, path, fmt, args); > > > va_end(args); > > > + if (err) > > > > Here we need a strbuf_release(&buf) to avoid a memory leak? > > No, cause we "strbuf_detach" after this to return the buffer? Or is > that not safe? That code path is OK. I think the question is whether you need to release the buffer in the "err" case where you return NULL and don't hit the strbuf_detach. IOW, does do_submodule_path() promise that when it returns an error, "buf" has been left uninitialized? Some of our strbuf functions do, but I do not know offhand about do_submodule_path(). -Peff -- 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