From 740ef537d15a4a8d146b3e1df990c90799847893 Mon Sep 17 00:00:00 2001 From: Bryan Call Date: Mon, 14 Sep 2026 21:10:01 -0700 Subject: [PATCH] Delete leaf RegressionSM instances when they complete ReRegressionSM::run() completes synchronously and never reaches regression_sm_waiting(), so nothing ever freed the six instances the test builds or the six clones RegressionSM::run() makes for the repeat counts. Composite nodes already delete themselves; leaves now follow the same contract CacheTestSM::complete() uses. Coverity CID 1022149, CID 1022150, CID 1022151. --- src/iocore/cache/RegressionSM.cc | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/iocore/cache/RegressionSM.cc b/src/iocore/cache/RegressionSM.cc index 57ad08dd3a3..3454a2e5fec 100644 --- a/src/iocore/cache/RegressionSM.cc +++ b/src/iocore/cache/RegressionSM.cc @@ -257,6 +257,8 @@ struct ReRegressionSM : public RegressionSM { } else { done(REGRESSION_TEST_PASSED); } + // A leaf SM owns itself once it is done; composites self-delete in run(). + delete this; } ReRegressionSM(RegressionTest *at) : RegressionSM(at) {} RegressionSM *