[PATCH 0/9] ref-filter %(trailer) fixes
- From
Jeff King <peff@peff.net>
- Date
- Sep 9, 2024, 23:07 UTC
- Message-ID
- <20240909230758.GA921697@coredump.intra.peff.net>
This series fixes two bugs noticed by Brooke:
- parsing trailers from signed tags doesn't work, because the
signature confuses the trailers code - multiple %(trailers) placeholders share some storage, so their
options may conflictThe fixes for those are in patches 3 and 5, respectively. The other patches up to there are related cleanups and preparation.
When fixing the second one, I noticed an obvious memory leak, fixed in patch 6. And then that made me wonder if that made t6300 leak-free. It didn't, but patches 7-9 get it there.
So 6-9 could be taken as a separate series, but they do textually depend on what came before.
[1/9]: t6300: drop newline from wrapped test title [2/9]: ref-filter: avoid extra copies of payload/signature [3/9]: ref-filter: strip signature when parsing tag trailers [4/9]: ref-filter: drop useless cast in trailers_atom_parser() [5/9]: ref-filter: store ref_trailer_buf data per-atom [6/9]: ref-filter: fix leak of %(trailers) "argbuf" [7/9]: ref-filter: fix leak with %(describe) arguments [8/9]: ref-filter: fix leak when formatting %(push:remoteref) [9/9]: ref-filter: add ref_format_clear() function
builtin/branch.c | 1 + builtin/for-each-ref.c | 1 + builtin/tag.c | 1 + builtin/verify-tag.c | 1 + ref-filter.c | 90 ++++++++++++++++++++++++++++++----------- ref-filter.h | 3 ++ remote.c | 8 ++-- remote.h | 2 +- t/t6300-for-each-ref.sh | 41 ++++++++++++++++++- 9 files changed, 118 insertions(+), 30 deletions(-)
-Peff