diff options
| author | Aleksandr Nogikh <wp32pw@gmail.com> | 2024-03-08 17:24:27 +0100 |
|---|---|---|
| committer | Aleksandr Nogikh <wp32pw@gmail.com> | 2024-03-08 16:36:20 +0000 |
| commit | 96d142e71b8a8a5affdab6f1c033799510040cce (patch) | |
| tree | b8b8a6aec40c6eb6d624c894eda84c291a9de129 /prog | |
| parent | 0b3e125fda2e386091985b4b57231dd19341f64e (diff) | |
Revert "prog: fix resource leak during replaceArg() of union fields"
This reverts commit 6387f6b7d487e2a77d753ad28c1074e39c17c3ca.
Diffstat (limited to 'prog')
| -rw-r--r-- | prog/expr_test.go | 17 | ||||
| -rw-r--r-- | prog/mutation.go | 1 | ||||
| -rw-r--r-- | prog/prog.go | 3 |
3 files changed, 1 insertions, 20 deletions
diff --git a/prog/expr_test.go b/prog/expr_test.go index adff50c6a..f6c8c8603 100644 --- a/prog/expr_test.go +++ b/prog/expr_test.go @@ -42,23 +42,6 @@ func TestGenerateConditionalFields(t *testing.T) { } } -func TestConditionalResources(t *testing.T) { - // Let's stress test the code and rely on various internal checks. - target, rs, _ := initRandomTargetTest(t, "test", "64") - ct := target.BuildChoiceTable(nil, map[*Syscall]bool{ - target.SyscallMap["test$create_cond_resource"]: true, - target.SyscallMap["test$use_cond_resource"]: true, - }) - iters := 500 - if testing.Short() { - iters /= 10 - } - for i := 0; i < iters; i++ { - p := target.Generate(rs, 10, ct) - p.Mutate(rs, 10, ct, nil, nil) - } -} - func TestMutateConditionalFields(t *testing.T) { target, rs, _ := initRandomTargetTest(t, "test", "64") ct := target.DefaultChoiceTable() diff --git a/prog/mutation.go b/prog/mutation.go index 54f88c175..cf93ce4eb 100644 --- a/prog/mutation.go +++ b/prog/mutation.go @@ -505,6 +505,7 @@ 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)) diff --git a/prog/prog.go b/prog/prog.go index f93293b64..34fcfa6e8 100644 --- a/prog/prog.go +++ b/prog/prog.go @@ -362,9 +362,6 @@ func replaceArg(arg, arg1 Arg) { case *PointerArg: *a = *arg1.(*PointerArg) case *UnionArg: - if a.Option != nil { - removeArg(a.Option) - } *a = *arg1.(*UnionArg) case *DataArg: *a = *arg1.(*DataArg) |
