From 76713834e4ab721bc6265c89203ee171152cc017 Mon Sep 17 00:00:00 2001 From: Aleksandr Nogikh Date: Tue, 5 Mar 2024 15:14:07 +0100 Subject: prog: fix resource leak during replaceArg() of union fields The replaced union field may contain resource references that must also be cleaned up. The bug was triggered via methods that patch conditional fields, so let's add stress tests for the conditional fields + resources combination. Reported-by: Paul Chaignon --- prog/mutation.go | 1 - 1 file changed, 1 deletion(-) (limited to 'prog/mutation.go') diff --git a/prog/mutation.go b/prog/mutation.go index cf93ce4eb..54f88c175 100644 --- a/prog/mutation.go +++ b/prog/mutation.go @@ -505,7 +505,6 @@ func (t *UnionType) mutate(r *randGen, s *state, arg Arg, ctx ArgCtx) (calls []* index++ } optType, optDir := t.Fields[index].Type, t.Fields[index].Dir(a.Dir()) - removeArg(a.Option) var newOpt Arg newOpt, calls = r.generateArg(s, optType, optDir) replaceArg(arg, MakeUnionArg(t, a.Dir(), newOpt, index)) -- cgit mrf-deployment