On Wed, Jul 23, 2025 at 02:41:27PM -0500, Justin Tobler wrote: > On 25/07/22 01:20PM, Patrick Steinhardt wrote: > > diff --git a/refs.c b/refs.c > > index 188989e4113..64544300dc3 100644 > > --- a/refs.c > > +++ b/refs.c > > @@ -3017,6 +3026,8 @@ static int migrate_one_reflog(const char *refname, void *cb_data) > > .transaction = migration_data->transaction, > > .errbuf = migration_data->errbuf, > > .sb = &migration_data->sb, > > + .name = &migration_data->name, > > + .mail = &migration_data->mail, > > I was a bit confused at first why we cared to assign the name and mail > fields here as it didn't look like we actually use them, but it looks > like we do this to release the the underlying strbuf as we don't free it > from `reflog_migration_data`. This is an optimization: instead of reallocating a new buffer every time we compute the name and mail we reuse a buffer. But because we're two callbacks deep in the callchain we have to splice these buffers through via multiple callback data structs. I'll add a note to the commit message. Patrick