mbox series

[0/9] ref-filter %(trailer) fixes

Message ID 20240909230758.GA921697@coredump.intra.peff.net (mailing list archive)
Headers show
Series ref-filter %(trailer) fixes | expand

Message

Jeff King Sept. 9, 2024, 11:07 p.m. UTC
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 conflict

The 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