"brian m. carlson" <sandals@xxxxxxxxxxxxxxxxxxxx> writes: > I'll send out a fixed patch tomorrow, but for the moment, here's the > gist of the change if you want to an immediate fix to squash in: > > ------- %< --------- > diff --git a/ref-filter.c b/ref-filter.c > index e6c8106377..5f8a443be5 100644 > --- a/ref-filter.c > +++ b/ref-filter.c > @@ -1344,8 +1344,8 @@ static void grab_sub_body_contents(struct atom_value *val, int deref, void *buf) > } else if (atom->u.contents.option == C_BARE) > v->s = xstrdup(subpos); > > - free((void *)sigpos); > } > + free((void *)sigpos); > } Ah, I see. find_subpos() will only called once to find the subject and signature in the loop, and the finding will have to live even the current iteration of the loop is done, only to be released after everything is done. Makes sense.