Hui Yiqun [off-list ref] writes:
quoted hunk
According to strbuf.h, strbuf_detach is the sole supported method
to unwrap a memory buffer from its strbuf shell.
...
diff --git a/path.c b/path.c
index 969b494..9801617 100644
--- a/path.c
+++ b/path.c
@@ -625,6 +625,7 @@ const char *enter_repo(const char *path, int strict)
{
static struct strbuf validated_path = STRBUF_INIT;
static struct strbuf used_path = STRBUF_INIT;...
+return_null:
+ free(dbuf);
+ strbuf_release(&used_path);
+ strbuf_release(&validated_path);
return NULL;
}
I see these strbuf's are "static" storage class, so that they do not
have to get freed.